在我的应用中,我正在使用身份验证。在_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上,但这真的有必要吗?