我正在尝试使用asp.net core 2 razor pages。如果有人未登录或角色不正确,尝试访问页面时,我应该禁止他们访问该页面。
限制用户访问页面的适当方法是什么?
我认为我会在页面的视图模型类中放置某种属性,但这似乎行不通。我已经尝试在各种方法和类中添加属性,但没有成功。
限制用户访问页面的适当方法是什么?
我认为我会在页面的视图模型类中放置某种属性,但这似乎行不通。我已经尝试在各种方法和类中添加属性,但没有成功。
PageModel
上使用 AuthorizeAttribute
进行装饰。// using Microsoft.AspNetCore.Authorization
[Authorize]
public class IndexModel : PageModel
{
...
}
另外,您还可以在ConfigureServices
方法的选项下设置授权:
services.AddMvc()
.AddRazorPagesOptions(options =>
{
options.Conventions.AuthorizeFolder("/MembersOnly");
options.Conventions.AuthorizePage("/Account/Logout");
options.Conventions.AuthorizeFolder("/Pages/Admin", "Admins"); // with policy
options.Conventions.AllowAnonymousToPage("/Pages/Admin/Login"); // excluded page
options.Conventions.AllowAnonymousToFolder("/Public"); // just for completeness
});
AuthorizeFolder
将限制对整个文件夹的访问,而AuthorizePage
将基于每个页面限制访问。相应地,AllowAnonymousToFolder
和AllowAnonymousToPage
则相反。