从 PrincipalPermission 迁移

Migration from PrincipalPermission

目前我在我的项目中使用这样的东西:

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

现在随着 .NET Core 的兴起,我尝试将该项目迁移到后者并遇到安全问题,因为我(几乎)不知道什么会取代 .NET Core 中的 PrincipalPermission。

有人对此有什么想法吗?终于有根据的猜测了?

PS:我说几乎没有线索,因为我肯定可以用 IsInRole("...") 替换它,如果没有则抛出 SecurityExceptions。我只是想知道有没有推荐的替代品

PrincipalPermission 是代码访问安全的一部分,它不再存在。现在所有身份都是 ClaimsPrincipal。所以你是对的,你可以使用 IsInRole 检查角色,或者,如果你使用 ASP.NET,你将使用 Authorize 和 policies.

你也可以在你自己的代码中使用策略,它们没有链接到 ASP.NET,你可以在 DI 中注册你的 类 并在你的构造函数中注入 IAuthorizationService 然后调用AuthorizeAsync 并做出相应反应。