【发布时间】:2017-05-02 13:39:58
【问题描述】:
我有一个以前使用 AD 进行身份验证的 MVC 5 应用程序。我已删除 Windows 身份验证设置并添加代码以手动对用户数据库进行身份验证。
问题是 AD 身份验证窗口继续弹出,我需要输入有效凭据才能访问任何表单。这是不希望的、不期望的,或者在我能找到的任何地方的代码中。
我在任何方法控制器上都没有授权标签。我还没有在任何表单上设置安全性,也没有任何允许或拒绝配置设置。我无法弄清楚为什么每个表单都会弹出 AD 身份验证窗口,以及为什么如果我单击取消,我无法访问我的任何表单而不会再次弹出。
配置文件:
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="~/Account/Login" timeout="300" slidingExpiration="true" protection="All" />
</authentication>
我查看了我的控制器、视图和全局/statup .cs 文件。现在没有任何线索。
我可以显示任何代码 sn-ps,但目前我不确定什么是相关的。
下面是我的 IISExpress 设置的 applicationhost.config 文件,它似乎也设置正确...
<authentication>
<anonymousAuthentication enabled="true" userName="" />
<basicAuthentication enabled="false" />
<clientCertificateMappingAuthentication enabled="false" />
<digestAuthentication enabled="false" />
<iisClientCertificateMappingAuthentication enabled="false">
</iisClientCertificateMappingAuthentication>
<windowsAuthentication enabled="false">
<providers>
<add value="Negotiate" />
<add value="NTLM" />
</providers>
</windowsAuthentication>
</authentication>
<authorization>
<add accessType="Allow" users="*" />
</authorization>
【问题讨论】:
-
托管在 IIS 中?认证模块是否只开启了windows auth?
-
调试期间托管在 IIS Express 上。另外,我不相信我安装了任何身份验证模块。这真的很简单。
-
可能您需要检查 Web 应用程序物理文件夹的 ACL 权限。确保您的应用程序池的身份对物理文件夹具有读取权限。
-
@PankajKapare 我相信 IIS Express 以我的本地用户身份运行,该用户也是管理员。我认为这不是问题。
-
你用的是VS2015吗?
标签: asp.net-mvc authentication forms-authentication asp.net-mvc-5