2011-10-20 529 views
9

我創建了一個站點。這是一個內部網站。它是一個.NET 4.0網站。我想要使​​用瀏覽網站的人的HttpContext.Current.User.Identity.Name來獲取用戶名。由於它是內部的,因此不存在登錄頁面。我不知道我錯過了什麼。我需要在我的webconfig如下:爲什麼HttpContext.Current.User.Identity.Name返回空白

<authentication mode="Windows"></authentication> 
<identity impersonate="true"/> 
<authorization> 
    <allow users="?"/> 
</authorization> 

這:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 

+0

你不會得到用戶登錄名稱,希望保持匿名而不強制進行某種類型的身份驗證 - 如果這就是你希望做的事情? –

回答

14

它出現空白時,未經認證。你也可以通過這樣做來驗證這一點:

HttpContext.Current.User.Identity.IsAuthenticated 

在IIS中檢查您的身份驗證級別,是否設置爲啓用Windows身份驗證?

4

是的,你確實需要,至少

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

部分是必需的,如果您正在使用集成Windows身份驗證。

之後,你應該能夠抓住登錄的人的用戶名

不,你不需要。

<validation validateIntegratedModeConfiguration="false" /> 
+0

我改變了我的webconfig只有,但仍然沒有用戶名。從我的電腦瀏覽網站,我期待看到我的用戶名(我登錄到計算機的用戶)。不知道我錯過了什麼。 – obautista

+2

您是否在IIS的應用程序級別配置了集成的Windows身份驗證? – Icarus

8

在iis中禁用匿名訪問併爲您的Web應用程序啓用集成的Windows安全性。

2

在IIS中,轉至網站\默認網站\ [您的網站]。

選擇驗證選項並禁用匿名驗證。

1

在我的情況下刪除<remove name="FormsAuthentication" />web.config幫助。

我也有<authentication mode="Forms" /><system.web>部分。

相關問題