我有一個使用Windows身份驗證的ASP.Net應用程序,我指定了一個位於我的AD和我的本地開發框中的角色,看起來都很好。當我部署到我的測試Web服務器時,通過ASP LoginName控件顯示的用戶名顯示的是服務器本地的身份,而不是我當前登錄的域中的實際帳戶,與我的本地PC一樣。是什麼賦予了?ASP.Net Windows身份驗證 - 用戶身份登錄到服務器
UPDATE: 我使用Windows XP SP3與發展IIS服務器(IIS沒有,即使已安裝IIS)。我創建了一個新的測試網站(來自VWD2010 Express的空網頁模板)。只有我做了配置,到目前爲止是Default.aspx頁面上,我說:
<asp:LoginName ID="LoginName1" runat="server" FormatString="Welcome {0}!" /><br />
<asp:Label ID="RoleLabel" runat="server"></asp:Label>
然後在後面的代碼,我補充說:
if (User.IsInRole("IPSCODOM\\SAFETY OBSERVATION"))
{
this.RoleLabel.Text = "You are in the SAFETY OBSERVATION role";
}
else {
this.RoleLabel.Text = "You are NOT in the proper role!";
}
現在,當我開始調試,屏幕顯示如下:
這是我期待的輸出。但是,當我將測試服務器(具有IIS 6.1的Server 2003 R2)部署到站點(再次沒有其他配置)時,結果會非常不同。用戶返回的是我們用來登錄到該服務器的用戶(但是是一個域帳戶)。應用程序池設置爲使用網絡服務帳戶(我已嘗試全部三種,系統,本地服務和網絡服務)登錄,萬維網發佈服務正在使用本地系統帳戶登錄。我禁用了網站上的匿名訪問,當我瀏覽到網站時,它又顯示與我登錄的用戶帳戶不同的用戶帳戶。
我在做什麼錯?
如果這出現在瀏覽器上,或許瀏覽器自動完成選項認爲您正在瀏覽該服務器上的另一個Web應用程序? –
naah,看看我下面的評論,現在我試圖在本地機器上使用IIS 7.5 Express,並且User對象沒有配置文件。不知道我在這裏做錯了什麼......認爲這很簡單。 – Keith
好的,所以我在當前的設置中添加了更多細節。檢查上面的更新... – Keith