Alw*_*wyn 10 model-view-controller asp.net-mvc claims-based-identity wif azure-acs
在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"}
Run Code Online (Sandbox Code Playgroud)
当cp是这样时,上面的工作:
var cp = System.Web.HttpContext.Current.User
Run Code Online (Sandbox Code Playgroud)
通过快速查看向私人成员钻取时,我可以看到他们都有相同的声明字典.但无论出于何种原因,公共财产在被召回的对象被召唤时都会受到打击ClaimsPrincipal.Current
帮助 - 这是为什么!?这真让我抓狂.
=============编辑==================
一定是上床睡觉的时候了.
IPrincipal支持多种身份.它需要某种商店.IIdentity返回ClaimsIdentity的实例,不需要商店.
我只是钻错了属性.他们两个的形状几乎相同,即.相同的属性和方法,我让他们感到困惑.
Identity是当前经过身份验证的用户,而principal是运行代码的安全上下文.
这篇文章是一个很好的解释,我发现有用http://msdn.microsoft.com/en-us/library/ftx85f8x.aspx.
归档时间: |
|
查看次数: |
15951 次 |
最近记录: |