User.Identity和Thread.CurrentPrincipal.Identity有什么区别?

3

有一些页面试图解释这个问题,但我没有找到任何最近的解释,所以请允许我再次提问。

asp.net MVC 5 中,User.IdentityThread.CurrentPrincipal.Identity 的区别是什么?

我尝试将它们的名称和声明打印出来,它们看起来对我来说是相同的,也许我错过了什么。


它们从未改变,那么你为什么需要最近的帖子呢? - Lex Li
1个回答

4
我相信你已经阅读了这篇文章:Thread.CurrentPrincipal vs Current.User,没有必要再解释同样的内容。
回答你的问题,我猜这取决于你正在开发什么应用程序。如果是Web应用程序(例如ASP.NET MVC),那么你应该偏向使用User.Identity,因为User.Identity是专为Web应用程序设计的。
通常它们之间没有区别,因为ASP.NET确保它们同步。(除非你像Scott所说的那样更改它们)
有些情况下,您不想(也无法访问)System.Web,因此您将不得不使用Thread.CurrentPrincipal.Identity
还请注意上面的Scott博客..如果你改变其中一个,请确保它们同步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接