0

我在使用 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年?

4

1 回答 1

1

事实证明,问题的发生是因为我没有以管理员身份运行 VS Studio 2019。一旦我设置了,我就没有任何问题了。

于 2020-04-02T16:58:43.053 回答