我掙扎着,掙扎着,並與此掙扎。其中一件事是我沒有訪問IIS的權限,因此我無法更改任何服務器設置。我不得不按照我在代碼方面的能力去做。當我研究它時,許多答覆都說:「像這樣設置IIS」。 。 。well,當你有權訪問IIS時,這很好,但我沒有 - 我不得不在代碼中做什麼。所以,我最終處理這樣的:
在我的網絡配置文件,我添加下面的代碼行 部分中:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
然後,它在我的本地返回一個錯誤,我必須進去修理。我去了位於我的機器上以下路徑的applicationhost.config文件(您的可能會有所不同):
C:\ users \「您的用戶名」\ My Documents \「yourIISInstallation」\ config \ applicationhost.config
,我改變了以下設置爲 「允許」,已被設置爲 「拒絕」:
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
改爲
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
和
<section name="windowsAuthentication" overrideModeDefault="Deny" />
到
<section name="windowsAuthentication" overrideModeDefault="Allow" />
在
<sectionGroup name="authentication">
部。在我發現這個問題之前,我把頭髮拉出來。我希望這可以幫助別人。只要我將上面的代碼放到webconfig文件中,它就在intranet上工作,它只是在本地返回錯誤,但只要我將上面的代碼添加到本地applicationhost.config文件中,它就開始工作在本地以及。然後,我調用以下變量以返回Windows上登錄用戶的名稱:
HttpContext.Current.User.Identity.Name.ToString().Substring((HttpContext.Current.User.Identity.Name.ToString().IndexOf("\\")) + 1);
乾杯!
使用Windows身份驗證。否則,瀏覽器將如何知道,以及爲什麼它會向服務器發送Windows用戶登錄的內容? – CodeCaster 2013-04-24 06:21:36
@CodeCaster,我應該採取它完全不可能使用窗體身份驗證?應用程序使用角色來控制訪問級別,但我希望獲得當前的Windows帳戶以進行一些後端試聽 – StackTrace 2013-04-24 06:26:10
角色沒有綁定到特定的身份驗證方法,您也可以在Windows身份驗證中使用它們。這是一個Intranet應用程序嗎? – CodeCaster 2013-04-24 07:09:47