2012-04-06 43 views
1

對於ASP.NET MVC 2應用程序,我們使用HttpContext.User.Identity.Name獲得用於認證目的的用戶名。這在測試時正常工作。數據庫中的用戶可以訪問他們有權訪問的區域,否則將重定向到401頁面。 401頁面顯示他們的用戶名,說明該用戶無權訪問此內容。HttpContext.User.Identity.Name在部署的應用程序

然而,在部署環境中,所有試圖訪問應用程序的任何部分重定向到401頁,並且顯示的用戶名是空白!

我們如何使已部署的應用程序能夠訪問請求的用戶名?

從我的研究,我應該去下面的屏幕並啓用Windows身份驗證,但它不在列表中!

enter image description here

+2

您使用哪種認證方案? Windows集成?形式? – 2012-04-06 14:59:28

+0

Windows集成 – yoozer8 2012-04-06 15:00:40

+0

您正在部署到服務器場嗎?在服務器場中使用會話變量時遇到了問題。 – 2012-04-06 15:01:16

回答

1

啊,如果您使用IIS 7,您可能需要先安裝它! Here's a good overview. FTA:

IIS 7的默認安裝不包括Windows 身份驗證角色服務。如果要使用IIS的Windows身份驗證,則 必須安裝角色服務,禁用 您的網站或應用程序匿名身份驗證,然後啓用對網站或應用程序的Windows身份驗證 。

如果你沒有看到它作爲一個選項,你可能沒有安裝它。

(從我的Winodws 7機器口述)轉到「開始」菜單並鍵入:打開或關閉Windows功能

接下來,在該對話框的樹狀視圖,去Internet信息服務 - 萬維網服務 - 安全然後檢查Windows身份驗證複選框。

+0

謝謝!我發現了這些信息,並且*只是*完成了這一切後才能工作!我只是需要打開Windows功能才能進入列表。 – yoozer8 2012-04-06 17:42:02

2

我們有過這樣一個問題,就是我們落得這樣做關閉在IIS匿名訪問。請記住在底部檢查集成盒..希望這可以幫助

+0

「底部集成箱」 - 底部是什麼? – yoozer8 2012-04-06 16:00:01

+0

IIS中的匿名訪問窗口..請讓我知道,如果你以前沒有見過這個。 – 2012-04-09 13:55:38

+0

我沒有。原來我只是不得不禁用匿名訪問和啓用Windows。最大的障礙是Windows不在列表中,並且必須打開該功能(請參閱接受的答案)。 – yoozer8 2012-04-09 14:34:34