2016-02-29 59 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并作出相应的反应。