【问题标题】:Why is my MVC5 App prompting me for Windows Auth when I removed Windows Auth?为什么我的 MVC5 应用程序在我删除 Windows 身份验证时提示我进行 Windows 身份验证?
【发布时间】: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


【解决方案1】:

在 applicationhost.config 文件的最底部(第 1050 行)是设置了 windowsAuthentication enabled="true" 的以下数据。将其更改为 false 后,我不再为 Windows 登录提示所困扰。

<location path="myapp">
    <system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

该文件位于解决方案根文件夹中,后跟 .vs\config

This 的帖子帮助我指明了检查该文件以及 PankajKapare 对 IIS Express 的评论的方向。

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多