【问题标题】:IIS windows authentication works for website but not for web application under websiteIIS windows 身份验证适用于网站,但不适用于网站下的 Web 应用程序
【发布时间】:2020-03-26 12:39:53
【问题描述】:

我有一个使用 Windows 身份验证在 IIS 中托管的网站。它工作正常。 但是,如果我将它作为网站下的 Web 应用程序托管,Windows 身份验证将不起作用,并且即使我输入了正确的用户名和密码,身份验证窗口也会显示然后不会消失。 SPN、委派和 IIS 设置应正确,否则网站将无法运行。只有当我将其部署为 Web 应用程序时,Windows 身份验证才会停止工作。有什么想法吗?

【问题讨论】:

  • 网页浏览器提示时IIS日志文件的子状态码是什么? support.microsoft.com/en-us/help/943891/… 另外,请您的域管理员帮忙。
  • 我得到状态码 401,因为身份验证失败
  • 能否分享您的 iis 应用程序 web.config 文件。我建议您确保在应用程序级别正确配置了 Windows 身份验证。检查 iis 日志中的子状态代码。

标签: iis windows-authentication


【解决方案1】:

感谢回复,子状态码是401.1,这里是应用层的web.config文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\DataService.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
    <system.web>
        <authentication mode="Windows" />
    </system.web>
</configuration>

【讨论】:

    【解决方案2】:

    我终于找到了解决方案。
    在 Web 应用程序上启用 ASP.Net Impersonation 后,它可以工作了。
    看起来,Web 应用程序需要模拟才能从网站获取 kerberos 票证。

    【讨论】:

    • 如果您的问题得到解决,我请求您将有用的建议标记为答案。这将帮助面临同样问题的其他人。
    猜你喜欢
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多