【问题标题】:Windows authentication keeps asking username password even credentials are correct即使凭据正确,Windows 身份验证也会不断询问用户名密码
【发布时间】:2014-05-21 14:08:47
【问题描述】:

我开发了一个应用程序来允许 Windows 身份验证并将其托管到实时服务器。在我的本地电脑中,我可以获得用户名密码。但是当我从网络(例如 websso.mydomain.com)访问时,即使我输入了正确的凭据,它也会不断询问凭据。

<authentication mode="Windows">
</authentication>

<authorization>
  <deny users="?" />
</authorization>
<identity impersonate="true"/>

我在 web.config 中添加了上面的标签,托管服务器是 windows server 2008 R2。我试图从

获取用户名
WindowsIdentity.GetCurrent().Name
Environment.Username
Request.ServerVariables["LOGON_USER"]
Request.ServerVariables["AUTH_USER"]
HttpContext.Current.Request.LogonUserIdentity.Name

是否需要在 IIS 中进行任何更改或配置 Windows 身份验证需要遵循的任何步骤。

安装的 IIS 版本是 7.5

【问题讨论】:

  • 看起来您遇到了 kerberos 身份验证问题... ISS 的 Windows 身份验证属性中有哪些提供程序处于活动状态?如果您对纯 NTLM 身份验证没问题,请尝试摆脱除 IIS 中 Windows 身份验证设置的 NTLM 身份验证提供程序之外的所有其他身份验证提供程序。如果必须使用 kerberos,则需要注册一些 SPN,以防应用程序池在技术域帐户下运行。还要确保用户至少对 Web 目录具有读取权限
  • 我使用了 NTLM 身份验证,并已设置在最前面。我想知道我需要做更多的配置吗?还是必须为特定组分配访问权限?
  • 尝试删除除 NTLM 之外的所有其他提供程序,然后重新启动 IIS。这可能会有所帮助。还可以尝试在网站目录上将 Read&Execute 授予“Authenticated Users”。
  • 我按照你的建议做了同样的事情,我现在添加了一个标签 但仍然是相同的响应。
  • 你应该把这些用户放在文件系统上。为了使其正常工作,请尝试在 web.config 中进行以下更改:
    &lt;system.web&gt; &lt;authentication mode="Windows" /&gt; &lt;authorization&gt; &lt;allow users="*" /&gt; &lt;deny users="?" /&gt; &lt;/authorization&gt; &lt;/system.web&gt;

标签: c# asp.net windows-authentication


【解决方案1】:

websso.mydomain.com 看起来像 Internet 域名,而不是 Intranet 域名,因为它有部分。根据https://support.microsoft.com/en-us/help/258063/internet-explorer-may-prompt-you-for-a-password,您应该使用不带部分的域名(例如http://websso/)或将您的域名添加到客户端浏览器的安全设置中

【讨论】:

【解决方案2】:

检查 IIS 中的应用程序池所有者

应该是网络服务

【讨论】:

  • 欢迎来到 StackOverflow。你能否提供更多关于某人如何做到这一点的信息?为了使您的答案对可能遇到同样问题的任何人真正有用,如果您编辑答案以提供更详细的步骤会更好。
【解决方案3】:

尝试更新您的&lt;authorization&gt; 以包含&lt;allow&gt; 元素,就像我在here 所做的那样。

例如

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <allow users="yourdomain\someotheruser" />
        <deny users="?" />
    </authorization>

【讨论】:

    【解决方案4】:

    我最近遇到了类似的问题,请尝试确保 windows 用户对服务器上的目录具有读取权限。

    【讨论】:

    • 我已向经过身份验证的用户授予读取和执行权限。是否有任何其他组 whpm 我需要授予访问权限?
    • 有没有像“Windows用户”这样的组我没有找到像Windows用户这样的东西。
    • @kbpanchal 有一个叫MACHINENAME\Users的组,如果机器在域中,应该有DOMAINNAME\Domain Users组。 @DLeh 谢谢这解决了我的问题
    猜你喜欢
    • 2016-08-26
    • 2013-04-23
    • 2020-03-24
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2015-05-18
    相关资源
    最近更新 更多