在ASP.NET Core 2.2中,你可以使用授权策略来处理授权和未授权的情况。以下是一个示例:
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAdminRole", policy =>
{
policy.RequireRole("Admin");
});
});
这将创建一个名为"RequireAdminRole"的授权策略,要求用户具有"Admin"角色。
[Authorize(Policy = "RequireAdminRole")]
public IActionResult AdminOnlyAction()
{
// 这个操作方法只允许具有"Admin"角色的用户访问
return View();
}
app.UseStatusCodePagesWithReExecute("/Error/AccessDenied/{0}");
这将重定向到"/Error/AccessDenied/{0}"页面,其中{0}是HTTP状态码。
Access Denied
You are not authorized to access this page.
这样,当用户没有"Admin"角色时,访问AdminOnlyAction方法时会显示"Access Denied"页面。
请注意,这只是一个简单的示例,你可以根据你的需求进行更复杂的授权策略配置和未授权处理。