1

寻找一些关于在哪里改变这个的信息......我有一个 .net 4 web 应用程序坐在一个盒子上,它的 SQL db 坐在另一个盒子上。用户窗口 AD 登录被拾取并在整个应用程序中使用

System.Security.Principal.WindowsIdentity.GetCurrent().Name;

如果我在本地运行应用程序,我会得到正确的登录名,例如“MyDomain\MyLogin”,如果我在其主机框中点击应用程序,则选择的登录名将变为“IIS APPPOOL\ASB”,ASB 是使用的 AppPool 的名称(并且应用程序的名称)。我真的需要返回“MyDomain\MyLogin”,所以我应该使用不同的方法吗?

谢谢

4

1 回答 1

0

如果您希望 Web 应用程序运行已连接用户的安全上下文,则需要将以下内容添加到<system.web>web.config 文件的部分:

  <authentication mode="Windows" />
  <identity impersonate="true" />

第一行告诉IIS 如何对用户进行身份验证,第二行告诉 ASP.Net 您希望在已连接用户的安全上下文中运行 Web 应用程序,而不是在 IIS 应用程序池的安全上下文中运行。

请注意,您还可以使用标识元素来指定所有请求都将在特定用户的上下文中运行。

于 2012-08-02T15:46:33.350 回答