2017-02-26 36 views
0

尊敬的計算器社區,認證前獲取Windows身份驗證ASP.net

有沒有什麼辦法可以在驗證之前檢索Windows用戶名/身份?

爲了讓大家都瞭解情況,我正在遷移一箇舊的ASP.net應用程序。以前的代碼工作沒有問題,但由於最近的代碼遷移,舊的代碼將不再工作。我希望此應用程序是單點登錄,而不是用戶需要在使用表單身份驗證方法時鍵入其用戶名和密碼。

它涉及:

  • 的Index.aspx
  • HomePage.aspx
  • 的Login.aspx
  • 的Global.asax

的應用程序流程:

  1. 輸入global.asax並檢查isAuthenticated是否爲true或 爲false,如果爲false,則輸入Index.aspx,如果爲true,則將所有用戶的訪問權提取到.isInroles中
  2. 如果未通過身份驗證,則獲取windows用戶名,檢查用戶 存在於應用程序中,而 FormsAuthentication.RedirectFromLoginPage(username, False/True) 它將重定向到global.asax並重定向到主頁。 (這 就是單點登錄應該的。如果沒有身份就 將返回的Login.aspx頁。
  3. 用戶提供的用戶名和密碼,和正常人一樣進行身份驗證。 (這一個工程)

的事情是,當您使用窗體身份驗證,身份將返回空白,直到用戶提供一個。例如HttpContext.Current.User.Identity.Name和其他幾個。有什麼辦法認證之前獲得Windows身份?

如果我更改web.config爲Windows身份驗證,它工作得很好,但它需要我改變系統的整體結構因爲系統授予訪問權限的方式非常過時,所以使用cookies .IsInRoles和我的團隊不會同意,因爲耗時的過程。抱歉,由於數據機密性,我無法發佈代碼段...

任何邏輯/僞代碼建議都會很好。

回答

0

這個問題的答案是,我通過使用Windows身份驗證重構了整個程序身份驗證,並且刪除了當前的global.asax並使用新的替換,因爲之前的global.asax已損壞,如果我評論整個代碼在它進入的global.asax中。這解決了我的問題。