【发布时间】: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>
更新:搜索后,这是我尝试过的:
- 用 IIS 重新注册 ASP.NET。 (
aspnet_regiis -ir) - 以 IUSR 作为匿名身份验证用户,向 IUSR 授予了完整的 Web 应用目录权限。
- 将应用程序池身份切换为 NetworkService,并将应用程序目录权限授予 NETWORKSERVICE。
- 将匿名身份验证用户从 IUSR 切换到我的服务器用户名(
xxxx/s_usr_acts,如之前的屏幕截图所示)并授予s_usr_acts对 Web 应用目录的完全权限。 -
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