繁体   English   中英

Microsoft Owin安全-声明构造函数值不能为null

[英]Microsoft Owin Security - Claims Constructor Value cannot be null

我对Owin安全性有些陌生。 我有一个带有用户表的旧应用程序,并且在其中为每个用户定义了特定角色。

我试图实现一个自定义用户管理器和用户存储,以查看该表并使用OOTB [Authorize(Roles =“ Contributor”)]属性为我的MVC应用程序授权用户。

我使用一段代码,使用标准的Account控制器和下面的客户用户商店以一种非常基本的方式来完成此任务。

我的问题是GetRolesAsync要么不再触发,要么在从Claims构造函数到达那里之前获取异常:

参数名称:

value
   at System.Security.Claims.Claim..ctor(String type, String value, String valueType, String issuer, String originalIssuer, ClaimsIdentity subject, String propertyKey, String propertyValue)
   at System.Security.Claims.Claim..ctor(String type, String value, String valueType)
   at Microsoft.AspNet.Identity.ClaimsIdentityFactory`1.<CreateAsync>d__0.MoveNext()

为什么我会突然看到这个例外,因为我对身份声明并不真正感兴趣。 我的示例工作方式是否发生了一些变化,将其从基于角色的安全性转移到了基于声明的安全性?

我终于弄明白了。

我的ApplicationUser类已更改为最近将ID设置为PersonId。 OOTB MVC和Owin使用的ID值未正确设置。 确保已设置此行为。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM