我已經繼承了一個使用表單身份驗證的項目,但最近的功能請求要求我獲取某些用戶的Windows用戶名。使用表單身份驗證獲取Windows用戶名的更好方法?
這是一個使用Forms身份驗證的網站(我不想改變這一點,在這一點上工作太多),但我有一個功能請求,允許我們的內部用戶更容易登錄(通常沒有必須輸入他們的密碼或用戶名)。
我現在的方法是可怕的,它涉及到檢查的IP地址,看看他們是從我們的IP地址的一個連接,如果是這樣,他們重定向到使用Windows身份驗證一個單獨的項目,然後重定向他們回原始頁面與包含他們的用戶名的查詢字符串(如果我被迫留在這個方法中,我可能需要加密,儘管它仍然不像我想的那樣安全)。
我可以在我的應用程序中相對容易地執行Windows身份驗證,但最難的部分是獲取Windows用戶名。我無法弄清楚如何做到這一點,因此我非常醜陋的方法。
任何幫助,將不勝感激。
編輯:我的二次應用只是做這個:
string username = HttpContext.Current.User.Identity.Name;
string retpath = Request.QueryString["retpath"];
Response.Redirect("http://" + retpath + "?id=" + username);
當前應用程序是否在域中的服務器上運行(或者至少與域具有信任關係)?如果是這樣,至少應該不需要單獨的申請。 –
目前這兩個應用程序都在我們的內部測試服務器上運行。如果我必須運行兩個單獨的項目,我可能會在同一個域上運行這兩個應用程序。 編輯:等等,我可能誤解了這個問題:)。我認爲你的實際問題的答案是肯定的,但我必須檢查。 – Maverick
我的意思是Windows聯網條款中的域名,而不是WWW DNS條款 - 如果您的用戶在DOMAIN5 \ UserName下登錄,您的IIS服務器是否也是DOMAIN5的一部分? –