簡體   English   中英

ASP.Net Windows 身份驗證 - 用戶身份登錄到服務器

[英]ASP.Net Windows Authentication - User Identity Logged Into Server

我有一個使用 Windows 身份驗證的 ASP.Net 應用程序,並且我在我的 AD 和本地開發框中指定了一個角色,一切似乎都很好。 當我部署到我的測試 web 服務器時,通過 ASP LoginName 控件顯示的用戶名顯示的是服務器本地的身份,而不是我當前在本地 PC 上登錄的域上的實際帳戶。 是什么賦予了?

更新:我正在使用 Windows XP SP3 和開發 IIS 服務器(不是 IIS,即使 Z5DA5ACF46104EFB7E7Z6EC8 已安裝)。 我創建了一個新的測試站點(來自 VWD2010 Express 的空 web 模板)。 到目前為止,我所做的唯一配置是在 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!";
}

現在,當我開始調試時,屏幕顯示如下:

這是我期待的 output。 但是,當我將站點(同樣,網站沒有其他配置)部署到測試服務器(帶有 IIS 6.1 的 Server 2003 R2)時,結果完全不同。 返回的用戶是我們用來登錄該服務器的用戶(但是是域帳戶)。 應用程序池設置為使用網絡服務帳戶(我已經嘗試了所有三個,系統、本地服務和網絡服務)登錄,並且 World Wide Web 發布服務使用本地系統帳戶登錄。 我在網站上禁用了匿名訪問,當我瀏覽到該網站時,它再次顯示與我登錄的用戶帳戶不同的用戶帳戶。

我究竟做錯了什么?

什么“本地服務器”身份。 在不了解您的設置的情況下,我會首先檢查您是否將服務器上的 IIS 實例設置為使用 Windows 身份驗證,因為這不是默認設置。 如果修復失敗,請確保您沒有將 IIS 中的服務熱連線以使用特定帳戶。

實際問題是,當我需要將一些文件部署到測試服務器並且我無權訪問驅動器的根目錄時。 當我瀏覽到根目錄時,出現了登錄對話框,我以在 web 頁面上顯示為已登錄的用戶身份登錄。 我忘了我做了這個,現在我覺得自己像個白痴。 請原諒我的無知,但請記住這個問題,以防其他人放屁。

順便說一句,要撤消登錄,我轉到控制面板>>用戶帳戶>>高級>>管理密碼並刪除了我正在瀏覽的服務器的憑據。 然后它正確地拿起了我的用戶帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM