簡體   English   中英

為什么System.Web.HttpContext.Current.User在控制器構造函數期間解析,但User.Identity不能解析

[英]Why does System.Web.HttpContext.Current.User resolve during a controller constructor, but User.Identity does not

羅恩·弗里曼(Rowan Freeman)對這個問題的回答描述了為什么在控制器的構造函數期間User.Identity為null。 對同一問題的評論指出, System.Web.HttpContext.Current.User確實會在同一上下文中產生期望值。

為什么System.Web.HttpContext.Current.User在控制器的構造函數期間有效,即使User.Identity無效?

在控制器的構造函數中使用System.Web.HttpContext.Current會導致錯誤嗎?

編輯以澄清:

在鏈接的文章中,關於User.Identity :“控制器實例化將在授權發生之前發生。即使您的MVC應用程序多次調用RenderAction()並最終創建例如五個不同的控制器,也將在創建任何五個控制器之前創建這五個控制器。發生了OnAuthorization。”

上面的段落不適用於System.Web.HttpContext.Current嗎? 我希望能更好地理解兩者之間的細微差別,使它們表現出不同的行為,以期希望了解System.Web.HttpContext.Current是否可以在單個動作之外但在控制器內部使用。

在控制器的構造函數中使用System.Web.HttpContext.Current會導致錯誤嗎?

它將引入不良的依賴關系,例如,這將阻止您無法對控制器進行正確的單元測試。

您可以考慮重寫Controller.Initialize來添加自己的Initializ

暫無
暫無

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

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