我使用HttpContext.Current.User.Identity.Name獲取登錄用戶的用戶名。我想知道這是如何工作的(使用NTLM v2/Kerberos)以及它有多安全?用戶可以嘗試模仿他是其他人嗎?HttpContext.Current.User.Identity.Name如何工作?它有多安全?
基本上,從安全的角度來看,有什麼我應該擔心的,還是應該如何改進呢?
我使用HttpContext.Current.User.Identity.Name獲取登錄用戶的用戶名。我想知道這是如何工作的(使用NTLM v2/Kerberos)以及它有多安全?用戶可以嘗試模仿他是其他人嗎?HttpContext.Current.User.Identity.Name如何工作?它有多安全?
基本上,從安全的角度來看,有什麼我應該擔心的,還是應該如何改進呢?
如果您使用的是Windows身份驗證(假定你的NTLM/Kerberos的提及看來你是),那麼會發生什麼情況(大致)如下
它很安全。它基本上與通過文件共享或其他使用kerberos的其他任何服務器連接到Windows服務器時使用的身份驗證類型基本相同。實際上,IIS和Windows本身是做大部分工作的,ASP.NET只是給你一個查詢結果的好方法。
User.Identity.Name與使用Forms Authentication時一樣安全嗎? –
你可以絕對肯定它!一旦用戶通過身份驗證(並且它可能是安全問題),那麼該屬性是完全安全的。你可以改進/選擇的是認證方法,密碼強度,http(非 - )嗅探和類似的東西。 –
@Adriano - 我的應用程序正在使用HTTPS。身份驗證方法僅在Windows登錄時完成,而不是與應用程序有關,這是正確的嗎? 有沒有關於這個問題的任何微軟引用? –
你使用Windows身份驗證?那麼它應該足夠安全(而弱部分是Windows用戶用來登錄的密碼)。根本不用擔心User.Identity,它很安全。安全問題將更容易來自我們編寫的代碼(以及用戶將選擇的密碼),而不是來自「基礎架構」和經過良好測試的代碼。 –