簡體   English   中英

如何獲取當前的Windows用戶名並禁用憑據提示?

[英]How to get current windows username and disable the credentials prompting?

我有一個帶有IIS7服務器的Windows Server 2008上的IIS 7下運行的C#.NET 4.0應用程序。 該應用程序將在公司的Intranet中運行,該公司的Intranet會自動獲取查看該頁面的人的登錄Windows用戶名,而不會在頁面加載時提示您輸入憑據。 現在我面臨兩個問題:

1)當前,應用程序返回該應用程序所在的生產服務器名稱(例如:XYZ \\ sam)。 我想獲取當前登錄的用戶名(例如:ABC \\ sam)。 它可以在localhost正常運行,但不能在生產服務器上正常運行。

我在web.config啟用了<authentication mode="Windows" /> ,在IIS上啟用了Windows身份驗證並禁用了匿名身份驗證。

我已經嘗試過Page.User.Identity.NameSystem.Web.HttpContext.Current.User.Identity.NameSystem.Security.Principal.WindowsIdentity.GetCurrent().Name等,但仍然無法獲得正確的名稱。 如何獲取當前Windows登錄用戶?

2)當我想訪問該應用程序時,它會不斷提示輸入用戶名和密碼的窗口。 如果我忽略它,它將提示

401-未經授權:由於憑據無效,訪問被拒絕。 您無權使用您提供的憑據查看此目錄或頁面。

我該如何解決?

對於您的2個問題,要自動登錄,必須在瀏覽器中進行設置,以我的經驗,我已在IE中完成此操作: https : //superuser.com/questions/537416/how-to-make-internet-explorer自動在特定域中登錄

對於問題1,由於服務器是域服務器,因此無法檢索登錄的用戶名。 從工作組轉移到域后,它可以工作。

對於問題2,如果我使用服務器名稱(例如:servername / appsname)進行訪問,則可以正常工作(沒有彈出憑據)。 但是如果我使用ip(例如:xxx.xx.xx.x / appsname)並且沒有設置工具Internet選項,它將要求提供憑據。 因素仍然未知。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM