簡體   English   中英

HttpContext.Current.User對於無狀態會話是否安全?

[英]Is HttpContext.Current.User Safe for Stateless Session?

我已經使用Azure網站幾個月了,出於SSL原因,我決定遷移到Cloud Services。 由於在我的項目中可能需要幾個Web角色,因此會話管理必須是無狀態的。

這就是我處理項目中用戶數據的方式。 如果我需要與用戶相關的數據,則可以通過HttpContext.Current.User.Identity.Name獲取其用戶名。 使用此信息,我查詢數據庫以獲取有關用戶的信息。

這是正確的方法嗎? 我進行了一些研究,但找不到關於HttpContext.Current.User來源的真正清晰的信息。

到目前為止,這是我的理解。 用戶通過表單身份驗證進行身份驗證,該身份驗證在用戶PC中創建一個cookie。 當用戶再次請求服務器時,服務器檢查cookie信息並使用它來填充HttpContext對象。 如果其他Web角色之一下次接受請求,是否可以使用該Cookie填充HttpContext? (這可能全都錯了,正如我所說的,這是我從文檔和網絡上的其他答案中了解到的)

這就是我想基本理解的內容。 我希望我的問題解釋得足夠清楚。 讓我知道是否不清楚。

我在運行多個Web角色的Azure應用中使用HttpContext.Current.User.Identity,並且已禁用SessionState且沒有任何問題。 我已將其設置為使用Cookies。

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogIn" cookieless="UseCookies" timeout="2880" />
</authentication>

我認為您的理解是正確的。 當我們使用FormAuthentication時,登錄后將生成一個cookie,其中包含用戶信息和諸如令牌之類的加密信息。 然后,我們請求另一個頁面,瀏覽器會將此cookie發送到服務器,而ASP.NET將解密該cookie,驗證用戶信息並將其填充到HttpContext.Current.User中,無論您的服務器端有多少個實例。 因此,我認為在具有多實例的Web角色中使用HttpContext.Current.User是安全的。

暫無
暫無

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

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