2016-02-29 53 views
0

目前我使用在我的項目是這樣的:從遷移的PrincipalPermission

IPermission permission = new PrincipalPermission(null, "MyFancyRole"); 
permission.Demand(); 

現在,隨着.NET核心的興起,我嘗試在項目移植到後者,並有一個問題與安全,因爲我(幾乎)沒有線索,什麼會取代.NET Core中的PrincipalPermission。

有沒有人有關於此的一些想法?終於有教養的猜測了?

PS:我說幾乎沒有線索,因爲我可以肯定地用IsInRole("...")替換它,如果不是,則拋出SecurityExceptions。我只是想知道是否有任何推薦的替代品。

回答

2

PrincipalPermission是Code Access Security的一部分,它不再存在。所有的身份現在都是ClaimsPrincipal s。所以你是對的,你要麼檢查角色IsInRole,或者,如果你使用ASP.NET,你會使用授權和policies

你也可以在你自己的代碼中使用策略,它們沒有鏈接到ASP.NET,你可以在DI中註冊你的類並在構造函數中注入IAuthorizationService,然後調用AuthorizeAsync並作出相應的反應。