Wal*_*ure 2 c# razor asp.net-core asp.net-core-2.0
我正在尝试asp.net core 2 razor页面.如果有人试图访问某个页面并且他们没有登录或者没有正确的角色,我就不应该授予他们访问该页面的权限.
限制用户访问页面的适当方法是什么?
我认为我会在页面的视图模型类中放置某种类型的属性,但这似乎不起作用.我试图在没有运气的情况下为各种方法和类添加属性.
要使用authorize属性,您可以PageModel
使用AuthorizeAttribute
.
例如:
// using Microsoft.AspNetCore.Authorization
[Authorize]
public class IndexModel : PageModel
{
...
}
Run Code Online (Sandbox Code Playgroud)
或者,您也可以在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
});
Run Code Online (Sandbox Code Playgroud)
该AuthorizeFolder
会限制访问整个文件夹,而AuthorizePage
会根据个人页面上会限制访问.的AllowAnonymousToFolder
和AllowAnonymousToPage
做相反,相应.
对于上述的具体文档,截至今天,文档仍在完成中.但是,您可以阅读有关它的进度并在此处跟踪它https://github.com/aspnet/Docs/issues/4281
否则,您可以在官方Microsoft Docs上更详细地阅读ASP.NET Core中的授权.
归档时间: |
|
查看次数: |
4554 次 |
最近记录: |