我为此挣扎,挣扎,挣扎。其中一件事是我无法访问已锁定的 IIS,因此我无法更改任何服务器设置。我不得不去做我能够在代码中做的事情。当我研究它时,许多回复说,“这样设置IIS”。. .嗯,当您可以访问 IIS 时,这很好,但我没有——我必须使用我可以在代码中做的事情。所以,我最终像这样处理它:
在我的 Web 配置文件中,我在该部分中添加了以下代码行:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
然后,它在我的本地返回一个错误,我必须进去修复。我转到位于我机器上以下路径中的 applicationhost.config 文件(您的可能不同):
C:\users\"你的用户名"\My Documents\"yourIISInstallation"\config\applicationhost.config
我将以下设置更改为“允许”,该设置已设置为“拒绝”:
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
变成
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
和
<section name="windowsAuthentication" overrideModeDefault="Deny" />
至
<section name="windowsAuthentication" overrideModeDefault="Allow" />
在里面
<sectionGroup name="authentication">
部分。在我发现这个修复之前,我把头发拉出来了。我希望这可以帮助别人。一旦我将上面的代码放入 webconfig 文件中,它就可以在内网上运行,它只是在我的本地返回错误,但是一旦我将上面的代码添加到我的本地 applicationhost.config 文件中,它就开始在我的本地运行也是。然后,我调用了以下变量来返回 windows 上登录用户的名称:
HttpContext.Current.User.Identity.Name.ToString().Substring((HttpContext.Current.User.Identity.Name.ToString().IndexOf("\\")) + 1);
干杯!