ASP.net升级后在IIS7中Form认证无法登录问题的解决
ASP.net 1.1开发的Web应用程序,在升级到2.0或3.5以后,通过IIS7发布。
程序中认证方式采用Form认证,Web.Config文件中代码如下:
<authentication mode="Forms">
<forms loginUrl="Pages\SystemPage\Login\logon.aspx" name=".ADUAUTH" protection="All">
</forms>
</authentication>
【遇到问题现象】
认证登录后,程序始终显示登录页 logon.aspx
通过程序跟踪,发现 logon.aspx.cs中
SetAuthCookie() 和 RedirectFromLoginPage()
执行后均无效,无法改变Request.IsAuthenticated值,始终为false;
【解决方案】
运行IIS7 -> 该Web程序 -> 身份验证 -> Form身份验证 -> 编辑 -> Cookie设置 -> 使用Cookie -> 应用。
做出如上修改后,Web.Config文件自动修改为:
<authentication mode="Forms">
<forms cookieless="UseCookies" loginUrl="Pages\SystemPage\Login\logon.aspx" name=".ADUAUTH" protection="All">
</forms>
</authentication>
再次运行程序,问题解决,程序可以正常登录。