gpt4 book ai didi

asp.net-mvc - ClaimsPrincipal.Current 与 HttpContext.Current.User?

转载 作者:行者123 更新时间:2023-12-02 05:30:40 30 4
gpt4 key购买 nike

在 MVC 中,这两者有什么区别?

它们看起来相同,甚至返回相同的类型/类System.Web.Security.RolePrincipal,但有一些微妙之处。

例如。当针对通过 ClaimsPrincipal.Current 生成的实例调用以下代码时,会引发各种错误

cp.FindFirst(ClaimTypes.Name); //{"Unable to connect to SQL Server database."} <--HUH!?
cp.Claims; //{"Value cannot be null.\r\nParameter name: username"}

当 cp 是这样时,上面的方法有效:

var cp = System.Web.HttpContext.Current.User

当通过快速监视深入到私有(private)成员时,我可以看到他们都有相同的声明字典。但是,无论出于何种原因,当针对 ClaimsPrincipal.Current

返回的对象调用时,公共(public)属性都会崩溃。

求助 - 这是为什么!?这让我发疯。

============编辑==================

差不多该 sleep 了。

IPrincipal 支持多种身份。它需要某种商店。IIdentity 返回 ClaimsIdentity 的实例,不需要存储。

我只是钻错了属性。它们两个的形状几乎相同,即。相同的属性和方法,让我感到困惑。

最佳答案

身份是当前经过身份验证的用户,主体是代码运行所在的安全上下文。

这篇文章是一个很好的解释,我发现很有用http://msdn.microsoft.com/en-us/library/ftx85f8x.aspx .

关于asp.net-mvc - ClaimsPrincipal.Current 与 HttpContext.Current.User?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19652221/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com