【问题标题】:Form authentication works on dev server but not on IIS表单身份验证适用于开发服务器,但不适用于 IIS
【发布时间】:2010-02-08 11:24:30
【问题描述】:

我们也有类似的问题。我们有一个在默认 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)上运行良好。

有人有想法吗?

谢谢,

伊克努尔

【问题讨论】:

  • 听起来像是 ServerFault 的问题。
  • @glenatron,甚至没有。处理应用程序的 asp.net 提供程序功能的配置。与服务器无关。

标签: iis forms-authentication


【解决方案1】:

看起来当您的应用程序运行的应用程序池处于集成托管管道模式时,这是 IIS 7 下的默认设置,您需要添加

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

到配置。

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

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

【讨论】:

  • 原来 C:\Windows\System32\inetsrv\config\applicationHost.config 中的配置最终被 inetmgr 修改,因为本地配置文件的相关部分已被锁定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 2014-08-16
相关资源
最近更新 更多