【问题标题】:ASP.NET Windows Authentication - Page cannot be displayedASP.NET Windows 身份验证 - 页面无法显示
【发布时间】:2018-06-12 20:07:15
【问题描述】:

我创建了一个简单的 WebForm asp.net 网站。我已禁用代码中的 Windows 身份验证检查,但将 IIS8 设置为“Windows 身份验证”以及 web.config。我在后端执行Indentity.IsAuthenticated 检查以确保用户已通过身份验证。

我的问题是“页面无法显示,请检查您的 URL 是否正确”。 (这是在 IE 中)

如果我将身份验证设置为匿名,则该网站可以正常工作。我禁用匿名身份验证并仅启用 Windows 身份验证并收到此错误。我现在已经做了很多阅读,并且认为我只是缺少一些小东西。 我使用了 IIS“默认站点”并将其设置为 Windows 身份验证并获得了登录提示(如预期的那样)。

服务器正在运行 IIS8,windows 2012。Windows 身份验证作为一项功能安装,IIS 站点设置设置为仅使用 Windows 身份验证,web.config 也是如此。 web.config 没有拒绝和允许的授权标签,但有<authentication mode="Windows" />。错误发生在 IE 和 FireFox 上。没有记录任何 Windows 事件,所以我认为这纯粹是一个未显示该站点的身份验证错误。 AppPool 设置为Identity

我认为最让我困惑的是“默认站点”(没有代码或逻辑)有效,而我的网站却没有。默认站点也没有 web.config。

任何想法都将不胜感激。

【问题讨论】:

    标签: c# asp.net authentication webforms iis-8


    【解决方案1】:

    这个问题可能与 Kereberos 有关。

    我遇到了同样的问题,在解决服务器端问题时,我的同事表示他能够访问该站点。

    那时我意识到我的问题是客户端问题。我的 Kerberos 票证可能有问题。可能最初向我发出票证的域控制器下线了。重新启动我的工作站是让 Windows 身份验证再次为我工作的原因。

    您可以尝试的其他一些事情是: 尝试将您的 Windows 身份验证提供程序更改为 NTLM 作为测试。
    单击站点->单击身份验证->单击Windows身份验证->单击提供程序 将 NTLM 移动到顶部,如果不存在则添加它。 单击确定。 IIS重置。然后再试一次。

    如果您更喜欢使用 Kerberos,您可能必须使用 setspn.exe 命令设置服务主体名称。

    有关 Kerberos 的更多信息 https://blogs.msdn.microsoft.com/chiranth/2014/04/17/setting-up-kerberos-authentication-for-a-website-in-iis/

    其他要检查的事项: - 检查您的授权规则和 .NET 授权规则,以确保允许所有用户访问该站点。

    • 查看位于 C:\inetpub\logs 的 IIS 日志以获取更多线索。在该文件夹中,您会找到以站点 ID 命名的每个站点的文件夹。您可以在 IIS 管理控制台上单击站点找到站点 ID。每个站点的站点 ID 都会显示在那里。

    • 验证站点的应用池标识是否有足够的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多