2012-07-03 78 views
6

「你有沒有做過任何.net編程?是的?好,這是一個大規模的破壞程序,修復它」。這就是我所處的情況,所以很抱歉,如果這是一個簡單的問題。c#asp.net獲取用戶名

我正在處理的程序從Web服務器上拉取文件。預計用戶已經登錄到Web服務器。我需要將登錄到服務器的當前用戶的用戶名(或者確保某人確實已登錄到服務器)。

我已經嘗試了以下,它返回一個空字符串。

user = HttpContext.Current.User.Identity.Name; 
+3

您是否爲IIS中的Web應用程序啓用了Windows身份驗證? –

+0

Environment.UserName返回什麼? –

回答

7

請確保您在Web.Config文件中設置了Windows身份驗證。訪問用戶名前還要檢查以下內容,

HttpContext.Current.User.Identity.IsAuthenticated 

Web.Config中設置如下,

<authentication mode="Windows"></authentication> 
+0

身份驗證當前設置爲表單。將其轉換爲Windows有多大危險? babno

+1

+1,但不需要更改爲Windows。保持身份驗證模式爲網站的設計目的。 (如果登錄,用戶名也將填入任何其他身份驗證模式) –

+1

是的。保持原樣。並嘗試使用以下鏈接瞭解formsauthentication http://stackoverflow.com/questions/8810496/forms-authentication-understanding-context-user-identity –

0

User對象的屬性,通常由應用程序的認證方案(表單,Windows或自定義填充),因此在開始訪問User之前,需要確保其中之一已到位。請致電docs at MSDN

1

首先檢入Web.config文件爲<authentication>標記。 如果你沒有找到它,那麼你的應用程序可能沒有使用任何標準的認證機制。如果是這種情況,請查看login.aspx或其他驗證代碼。在那裏您將獲得登錄的用戶數據。

我不會建議你在web.config文件中修改任何東西,而不必牢牢掌握應用程序中發生的事情。