我在使用 Windows 身份验证和 IIS Express 测试 Asp.Net Webforms 应用程序时遇到了一个奇怪的问题。
这是上下文信息:操作系统:
OS Name Microsoft Windows Server 2016 Standard
Version 10.0.14393 Build 14393
视觉工作室 2019:
Microsoft Visual Studio Enterprise 2019
Version 16.4.6
VisualStudio.16.Release/16.4.6+29905.134
Microsoft .NET Framework
Version 4.8.03761
应用程序:Asp.net WebForms、MVC 5、带有 Windows 身份验证的 Web Api 2.0 应用程序。我使用 Chrome 和 FireFox 来测试应用程序和 IIS Express 10。
我有两个 Windows 帐户,我们在名为 SomeDomain 的域下称它们为 Account1 和 Account2,这是主域。这两个帐户在此 VM 上都具有本地管理员权限。在此 VM 上启用了 UAC。我不以管理员身份运行 Visual Studio。
当我进行开发时,我以 Account1 身份登录,我对此帐户没有任何问题。但是,当我在 Account2 下登录应用程序时(当浏览器提示我时),我通过了默认页面,但随后我单击了其他一些页面,并再次提示我输入密码。有时一个页面可能会工作,而我第二次访问该页面时会提示我输入密码!异常诡异。我不得不说我在以前的开发虚拟机上从来没有遇到过这样的问题,使用 Windows Server 2012 和 Visual Studio 2017。
现在,我开始调查,看看发生了什么。首先,Account2 对应用程序目录具有读取权限。我使用 Windows -> 安全对话框中的有效访问功能仔细检查了这一点。
我检查了 IIS Express 日志文件,这是错误:
<EventData>
<Data Name="ContextId">{8000002A-0001-FA00-B63F-84710C7967BB}</Data>
<Data Name="ModuleName">IIS Web Core</Data>
<Data Name="Notification">2</Data>
<Data Name="HttpStatus">500</Data>
<Data Name="HttpReason">Internal Server Error</Data>
<Data Name="HttpSubStatus">0</Data>
<Data Name="ErrorCode">2147943746</Data>
<Data Name="ConfigExceptionInfo"></Data>
</EventData>
<RenderingInfo Culture="en-US">
<Opcode>MODULE_SET_RESPONSE_ERROR_STATUS</Opcode>
<Keywords>
<Keyword>RequestNotifications</Keyword>
</Keywords>
<freb:Description Data="Notification">AUTHENTICATE_REQUEST</freb:Description>
<freb:Description Data="ErrorCode">Either a required impersonation level was not provided, or the provided impersonation level is invalid.
(0x80070542)</freb:Description>
</RenderingInfo>
网上搜索显示,这些错误一直困扰着开发者很长时间。但是现在,2020年?