[英]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.