对所有PageModels进行授权?

时间:2019-05-05 20:35:32

标签: c# authentication asp.net-core

在我的应用中,我正在使用身份验证。在_Layout.cshtml中,我有以下视图组件:

@{
    var ctxUser = ViewContext.HttpContext.User;
}

@if (ctxUser.Identity.IsAuthenticated && ctxUser.IsInRole("Member"))
{
    // Shows name on member
}
else
{
    // Shows login button
}

我的应用程序包含无数页面。有些需要登录,有些则不需要。我发现奇怪的是,只有在页面模型上带有[Authorize(Roles = "Member", AuthenticationSchemes = "Member")]的页面上,我的视图组件才会显示登录成员的名称。否则,它会显示登录按钮。

我知道,我也可以将[Anonymous]放在PageModel上,但这真的有必要吗?

0 个答案:

没有答案