适用于表单身份验证的IIS 6配置

Jaw*_*ikh 2 asp.net security configuration iis-6

我在当前的ASP.NET Web应用程序(而不是MVC)中使用表单身份验证,并且我的IIS 6服务器配置了以下选项:

在[目录安全性选项卡] - > [身份验证方法]我有:

  • 匿名访问已启用
  • 集成的Windows身份验证已启用

上述选项是否会阻止表单身份验证正常工作?换句话说,表单身份验证的正确IIS 6配置是什么?

编辑

我刚刚启用了以上两个选项并且Forms身份验证会话已过期并将我重定向到登录页面进行测试,但到目前为止所有答案都建议[集成Windows身份验证]应该关闭!

Kev*_*Kev 7

这是在IIS6上使用ASP.NET Forms身份验证的检查列表

配置IIS:

在IIS中,站点属性 - >目录安全性 - >身份验证和访问控制

  • 启用匿名访问
  • 禁用所有经过验证的访问方法

在此输入图像描述

配置表单身份验证

在您的站点中配置表单身份验证web.config:

<authentication mode="Forms">
  <forms name="MySite" 
         path="/" 
         loginUrl="~/logon.aspx" 
         protection="All" 
         timeout="30"
         slidingExpiration="true" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

nameloginUrl可能会有所不同.该slidigExpiration属性用于继续扩展表单身份验证cookie的生命周期,而不是仅仅在用户timeout过期后将用户从站点中踢出.该timeout值以分钟为单位.

配置会话超时:

您需要将会话状态配置timeout为比表单身份验证票证到期时间更长.如果您不这样做,那么空闲会话可以使会话超时但让用户登录.期望会话值存在的代码将抛出异常,因为即使它们仍然经过身份验证,它们也会消失.该timeout值也以分钟为单位.

<sessionState mode="InProc" timeout="40" />
Run Code Online (Sandbox Code Playgroud)