none
Forms身份验证不能进行分布式部署? RRS feed

  • 问题

  • 参照网上的一些方法,使用Forms身份验证对应用进行分布式部署,发现没有成功。

    应用部署的两台内网服务器:192.168.1.19,192.168.1.87,使用Nginx做负载分配,配置完全相同;每台都可以登录运行。

    由于有字数限制,具体内容请看

    http://www.cnblogs.com/hnsongbiao/p/4925531.html


    fly with me

    2015年10月31日 6:49

全部回复

  • 你测试时用的是一样的用户名和密码吗? 从你的代码和运行结果来看,第二次测试时(192.168.1.87),User.Identity.IsAuthenticated为False.
    2015年11月3日 8:53
  • 是一样的,第二次测试时没有登录

    fly with me

    2015年11月9日 1:14
  • Hi,

    没有遇到过这类应用场景,但据我的理解如果要在分布式中使用 Form 的话,首先你需要把 Session 的模式改为 Sql Server,并且这个设置要在两台服务器上一致,这样用户登录后获得的 cookie 里包含的 session id 就是保存在 sql server 中,当下次请求到达任何一台服务器时,会检查请求中携带的 cookie,这时会比对 session id 与数据库中的值,如果有且没有过期应该是认为这个请求是认证过的。

    但我觉得这种分布式应用场景是不是应该换一种认证方式,比如单点登录、Windows Identity Framework(WIF).


    Please mark this as answer if it helps with this issue!

    2015年11月19日 4:07
  • cookie肯定是存在浏览器上的,是你的192.168.1.87服务器读取不到cookie吧,我想应该是IIS配置权限不足,可以尝试一下配置红色框内值https://social.msdn.microsoft.com/Forums/getfile/756940
    2015年12月10日 16:19
  • 可以加我qq785187685
    2015年12月10日 16:22