簡體   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