2012-08-02 44 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