表单身份验证适用于dev服务器,但不适用于IIS

时间:2010-02-08 11:24:31

标签: iis forms-authentication

我们遇到了类似的问题。我们有一个在默认appdomain下运行的Web应用程序。它工作正常,直到一个星期......突然它遇到了一个问题。以下消息来自事件日志。

Event code: 4005 Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired. 

应用程序使用FormsAuthentication并从aspnetdb获取角色。错误发生后,当用户登录页面时,它不会重定向到default.aspx。再次登录login.aspx。另一方面,应用程序在开发服务器(localhost)上运行正常,但在www(IIS 6.0)上运行不正常。

有人有想法吗?

谢谢,

İlknur

1 个答案:

答案 0 :(得分:0)

当应用程序池正在运行的应用程序池处于集成管道管道模式(IIS 7中的默认管理模式)时,您需要添加

<system.webServer>
  <modules>
      <add  name="FormsAuthenticationModule"  type="System.Web.Security.FormsAuthenticationModule" />

进行配置。

请参阅this article

中的[使用IIS 7对静态文件执行基于表单的身份验证和URL身份验证]部分

最初我手动将上述部分添加到web.config,但IIS抱怨运行时错误,所以我最终使用MMC面板为IIS(inetmgr)通过GUI添加它。应用程序的配置文件未被修改,但功能开始工作,所以我不确定哪个配置文件GUI工具应用了更改。