2012-08-02 46 views
1

寻找一些信息,在哪里可以改变这... 我有一个.net 4网络应用程序坐在一个盒子上,其SQL数据库坐在另一个。 窗户AD登录拾取并使用整个应用程序与.net 4 - 返回用户windows登录

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

如果我在本地运行的应用程序,我得到了正确的登录,例如“MYDOMAIN \ MyLogin”, 如果我打的应用程序的主机上的用户框的登录信息变为“IIS APPPOOL \ ASB”, ASB是所使用的AppPool的名称(以及应用程序的名称)。 我真的需要返回“MyDomain \ MyLogin”,所以我应该使用不同的方法?

感谢

+0

什么样的网络应用程序? WindowsForms? MVC? – 2012-08-02 15:21:58

+0

你需要澄清网络应用程序。这是ASP.NET。当你说在本地运行你的意思是在VisualStudio?在VisualStudio中,您作为登录帐户运行。当您直接点击该网站时,该应用程序将在游戏池下运行。如果您希望登录用户可以使用AD作为用户存储来实现表单身份验证,或者我认为Phil的答案将起作用。 – Paparazzi 2012-08-02 15:27:41

+0

是的,它的ASP.NET和Im浏览VS 2010中的Web表单。 – DarkW1nter 2012-08-02 15:30:39

回答

0

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

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

第一行告诉IIS how to authenticate users,第二行告诉ASP.Net,您希望运行security context of the connected user中的Web应用程序,而不是IIS应用程序池的安全上下文。

请注意,您也可以使用identity element来指定所有请求都将在特定用户的上下文中运行。

+0

谢谢,我会给这个去 – DarkW1nter 2012-08-02 15:58:06

+0

嗨,再次,在尝试如上修复,我现在得到“NT AUTHORITY \ IUSR”作为用户登录到框,而不是我的Windows登录。 – DarkW1nter 2012-08-03 09:05:23

+0

哎呀! - 我没有正确配置IIS身份验证,现在排序。 – DarkW1nter 2012-08-03 09:43:06