ASP.NET Windows身份验证 - 无法显示页面

时间:2018-01-03 06:44:20

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

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

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

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

服务器正在运行IIS8,Windows 2012.Windows身份验证作为一项功能安装,IIS站点设置仅设置为使用Windows身份验证,web.config也是如此。 web.config没有deny和allow的授权标签,但有<authentication mode="Windows" />。 IE和FireFox都会出现错误。没有记录任何Windows事件,所以我认为它纯粹是一个不显示网站的身份验证错误。 AppPool设置为Identity

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

任何想法都会感激不尽。

1 个答案:

答案 0 :(得分:0)

这个问题可能与Kereberos有关。

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

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

您可以尝试的其他一些事情是: 尝试将Windows身份验证提供程序更改为NTLM作为测试 点击网站 - &gt;点击身份验证 - &gt;单击Windows身份验证 - &gt;单击“提供者” 将NTLM移到顶部或添加它(如果它不在那里)。 点击确定。 IISRESET。然后再试一次。

如果您更喜欢使用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都将显示在那里。

  • 验证网站的应用程序池标识是否具有足够的权限。