【问题标题】:IIS7 -- 401.2 Error with Forms/Anonymous Auth EnabledIIS7 -- 启用表单/匿名身份验证时出现 401.2 错误
【发布时间】:2013-08-02 23:02:46
【问题描述】:

我在远程 Win2K8R2 虚拟机上安装了 ASP.NET 4 Web 窗体应用程序。我无法远程部署任何东西到这个盒子,所以我发了一个VS2012 Web Deployment Package,我在本地安装了它。我通过WebPI 4.6安装了IIS推荐配置。

我开始在具有 LocalSystem 身份的集成管道模式下使用默认应用程序池(我的将是 IIS 上唯一的 Web 应用程序)。这与我在 Win2K8 VM 和 Win2K8 物理机上成功用于其他 Web 应用程序的配置完全相同。

我正在使用表单/匿名身份验证。 Account 目录授权是这样配置的:

我的应用授权是这样配置的:

更新: 我的应用程序身份验证配置如下:

我的 Membership Provider 是这样配置的:

<membership defaultProvider="ActsMembershipProvider">
                <providers>
                    <clear />
                    <add connectionStringName= [myString] 
                    name= [providerName] 
                    type= [assemblyName].[providerName] />
                </providers>
</membership>

我的表单身份验证配置如下:

<authentication mode="Forms">
        <forms name=".ASPXAUTH" loginUrl="~/Account/Login.aspx" defaultUrl="~/" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" />
</authentication>

更新:搜索后,这是我尝试过的:

  1. 用 IIS 重新注册 ASP.NET。 (aspnet_regiis -ir)
  2. 以 IUSR 作为匿名身份验证用户,向 IUSR 授予了完整的 Web 应用目录权限。
  3. 将应用程序池身份切换为 NetworkService,并将应用程序目录权限授予 NETWORKSERVICE。
  4. 将匿名身份验证用户从 IUSR 切换到我的服务器用户名(xxxx/s_usr_acts,如之前的屏幕截图所示)并授予 s_usr_acts 对 Web 应用目录的完全权限。
  5. aspnet_regiisat the app level.

我可以访问我的登录页面,但我在尝试登录时不断收到 401.2 错误。还有什么我可以检查或尝试的吗?

附加信息:

  • 更新:我在 Rackspace Win2k8 生产机器和内部 Win2k8 虚拟机上成功配置了相同的应用程序。
  • 我正在通过ASP.NET Membership Provider 进行身份验证。
  • 我正在针对 Oracle 的数据提供程序运行 EF5。

【问题讨论】:

  • 401.2 表示“由于没有身份验证的服务器配置导致登录失败”。您已经展示了应用程序的授权规则,但身份验证配置是什么样的?成员资格提供程序是否正确配置和执行?
  • 感谢您的回复,Snixtor。正如我在帖子中提到的,我启用了表单和匿名身份验证(不是 Windows 身份验证)。我将添加屏幕截图和 web.config 的一部分。
  • 是否涉及https?如果可以正常工作?
  • 感谢您的回复,菲尔。 HTTPS 不涉及此问题。但是,我确实为其他两个相同的配置启用了 HTTPS(请参阅上面的更新。)不过,我没有为此配置设置绑定。
  • 关于授权规则,你有没有检查生成的Web.config,尤其是在Account文件夹中?

标签: asp.net authentication iis iis-7 windows-server-2008-r2


【解决方案1】:

UPDATE2:当我从客户服务器上的 C: 驱动器的根目录运行我的 Web 部署包时,我遇到了 401.2。但是,当我从桌面运行它时,我不再遇到 401.2,并且“进展”到 Oracle 连接错误。我有这个作为答案,因为我的发现解决了具体问题,尽管我不认为这是规范的。我仍然希望有更接近规范的答案。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我在 IIS 身份验证面板上更改匿名身份验证凭据时解决了这个问题。当我选择“应用程序池标识”时,错误消失了。我不知道为什么这是解决方案。虽然我也不知道这个错误的根源是什么,因为我只想更新我的 Web 应用程序,从部署文件夹中复制文件,除了 web.config 文件。 现在,灭火后,我会调查它发生的原因。目前我认为这可以帮助某人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多