配置IIS以允许多个用户同时访问

时间:2012-03-07 00:50:42

标签: asp.net session iis authentication web

我在WinServer2k8计算机上有一个ASP.NET网站,它通过表单身份验证提供。此时,如果一个人登录到机器A,则机器B上的所有登录尝试都将失败(A& B使用相同的互联网连接来访问服务器)。登录请求不会返回任何错误,而是简单地重定向回登录屏幕,就好像身份验证从未发生过一样。我想知道如何通过IIS7或web.config文件配置此站点,以便它允许任意数量的并发用户会话。网站的所有设置都设置为IIS7默认值。我已经尝试在IIS7中更改会话状态模式,最大会话属性和表单身份验证设置。

感谢任何帮助。

P.S。 - 我还测试了使用不同IP地址进行互联网连接的计算机,我仍然无法从该端开始同时进行会话。

P.P.S - 如果我尝试从服务器计算机本身的Web浏览器启动会话,它将每次都有效,无论谁登录。想法?

编辑 - 我正在使用Windows会话凭据进行身份验证 - 网页后端使用的方法是LogonUser,它是从advapi32.dll导入的

2 个答案:

答案 0 :(得分:0)

如果您了解有关表单身份验证详细信息的更多信息,您就会知道IIS / ASP.NET使用cookie来标识用户是否已通过身份验证。对于负载平衡方案,您需要启用ASP.NET会话,并使用进程外会话模式(建议使用SQL Server模式)。

只有这样,用户的会话才能跨机器有效,并且他/她可以在其中一个框架上进行身份验证后访问所有框,

您需要注意的最后一点是机器键。对于所有框,他们必须使用相同的机器密钥来加密会话信息。否则,如果用户在一个框上进行了身份验证,则另一个框无法解密该信息。

http://msdn.microsoft.com/en-us/library/ff649308.aspx

答案 1 :(得分:0)

我发现了问题的根源,事实证明,我使用表单身份验证的方式没有任何问题。

错误,因为它证明了身份验证请求的超时值对于任何机器来说都太低了,除了托管网站的服务器。我将web.config文件中Forms标签的超时值从5修改为5000,这样就可以了。

因此,服务器错误处理会话的问题实际上只是其他机器无法及时完成身份验证请求。无论如何,谢谢你的帮助。