我在当前的ASP.NET Web应用程序(而不是MVC)中使用表单身份验证,并且我的IIS 6服务器配置了以下选项:
<目录安全性标签中的- &gt; [认证方法]我有:
上述选项是否会阻止表单身份验证正常工作?换句话说,表单身份验证的正确IIS 6配置是什么?
修改
我刚刚启用了以上两个选项并且表单身份验证会话已过期并将我重定向到登录页面进行了测试,但到目前为止所有答案都建议[集成Windows身份验证]应该关闭!
答案 0 :(得分:7)
以下是在IIS6上使用ASP.NET Forms身份验证的检查列表
配置IIS:
在IIS中,网站属性 - &gt;目录安全 - &gt;身份验证和访问控制
配置表单身份验证:
在您网站的web.config
:
<authentication mode="Forms">
<forms name="MySite"
path="/"
loginUrl="~/logon.aspx"
protection="All"
timeout="30"
slidingExpiration="true" />
</authentication>
您的name
和loginUrl
可能会有所不同。 slidigExpiration
属性用于继续扩展表单身份验证Cookie的生命周期,而不是仅在timeout
到期后将用户从网站上踢出。 timeout
值以分钟为单位。
配置会话超时:
您需要将会话状态timeout
配置为比表单身份验证票证到期时间更长。如果您不这样做,那么空闲会话可以使会话超时但让用户登录。期望会话值存在的代码将抛出异常,因为它们即使仍然经过身份验证就消失了。 timeout
值也以分钟为单位。
<sessionState mode="InProc" timeout="40" />
答案 1 :(得分:2)
由于表单身份验证不依赖于IIS身份验证,因此如果要在ASP.NET应用程序中使用表单身份验证,则应在IIS中为应用程序配置匿名访问。
有关详细信息,请参阅此处http://msdn.microsoft.com/en-us/library/ff647070.aspx。
答案 2 :(得分:2)
应该启用匿名访问,我不认为集成的Windows身份验证会产生影响,但如果您不需要它,那么最好将其关闭。要记住的重要一点是确保它在web.config中打开:
<authentication mode="Forms" />
这是一个可能有用的基础教程:
答案 3 :(得分:2)
匿名访问 - &gt;检查 安全选项卡上的所有其他选项 - &gt;未选中
注意,表单身份验证由.NET完成 - 而不是由IIS完成。此外,Windows身份验证也必须关闭。