Thread.CurrentPrincipal.Identity 与 HttpContext.User.Identity 的区别

15
2个回答

10

HttpContext.User.Identity是Web应用程序中当前已登录用户。

Thread.CurrentPrincipal仅适用于<authentication mode = "windows"/>。通常与基于Windows的应用程序(Winforms,WPF等)一起使用。


1
Thread.CurrentPrincipal 仍然可以在 mode="forms" 下工作... - bevacqua
1
@Nico:但它并不会给你当前登录的用户信息,它会给出Windows用户详情。因此,在这种情况下,Thread.CurrentPrincipal并没有太大意义。 - CharithJ
2
在 Forms 认证中,Thread.CurrentPrincipal 可能与 HttpContext.User.Identity 不同步。请参阅 Hanselman 的旧博客。同时请查看这个新的 stackoverflow - subsci

-3

如果您使用HttpContext.User.Identity,则等同于Thread.CurrentPrincipal


4
不正确。如果在后台中分离一个线程,HttpContext.User 可能会在线程运行期间发生变化,这取决于您的运行方式。 - blowdart
1
HttpContext.Current.User 将是当前已登录的 Web 用户。 Thread.CurrentPrincipal 将是运行工作进程(线程)的用户主体。 在表单/WPF 应用程序的情况下,这是有意义的,因为您运行应用程序的用户就是您感兴趣的用户。 - Daniil T.

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