Microsoft.AspNet.Identity 3 中的 ClaimsAuthorizationAttribute 等效项
Equivalent of ClaimsAuthorizationAttribute in Microsoft.AspNet.Identity 3
有谁知道相当于:
[ClaimsAuthorization(ClaimType="", ClaimValue="")]
在 Microsoft.AspNet.Identity 3 (beta6)
标识为 2.1 的示例:
[HttpGet]
[ClaimsAuthorization(ClaimType="ManageStore", ClaimValue="Allowed")]
public IActionResult Register()
{
return View();
}
@tailmax 的方法适用于 ASP.NET 5 beta4,但不适用于 beta5、beta6 和下一个版本,因为 AuthorizeAttribute
已经完全改版并且不会公开 OnAuthorization
了(现在只是一个标记)。
推荐的方法是使用新的授权服务配置新策略,只需使用AuthorizeAttribute
:
public void ConfigureServices([NotNull] IServiceCollection services) {
services.ConfigureAuthorization(options => {
options.AddPolicy("ManageStore", policy => {
policy.RequireAuthenticatedUser();
policy.RequireClaim("ManageStore", "Allowed");
});
});
}
public class StoreController : Controller {
[Authorize(Policy = "ManageStore"), HttpGet]
public async Task<IActionResult> Manage() { ... }
}
有谁知道相当于:
[ClaimsAuthorization(ClaimType="", ClaimValue="")]
在 Microsoft.AspNet.Identity 3 (beta6)
标识为 2.1 的示例:
[HttpGet]
[ClaimsAuthorization(ClaimType="ManageStore", ClaimValue="Allowed")]
public IActionResult Register()
{
return View();
}
@tailmax 的方法适用于 ASP.NET 5 beta4,但不适用于 beta5、beta6 和下一个版本,因为 AuthorizeAttribute
已经完全改版并且不会公开 OnAuthorization
了(现在只是一个标记)。
推荐的方法是使用新的授权服务配置新策略,只需使用AuthorizeAttribute
:
public void ConfigureServices([NotNull] IServiceCollection services) {
services.ConfigureAuthorization(options => {
options.AddPolicy("ManageStore", policy => {
policy.RequireAuthenticatedUser();
policy.RequireClaim("ManageStore", "Allowed");
});
});
}
public class StoreController : Controller {
[Authorize(Policy = "ManageStore"), HttpGet]
public async Task<IActionResult> Manage() { ... }
}