【发布时间】:2018-12-17 05:13:43
【问题描述】:
几乎不言自明,因为如果我输入 [Authorize (Roles="Admin")],页面在主栏中仍然可见,并且我希望它对所有人隐藏,除非以管理员身份登录。
【问题讨论】:
-
您需要在生成导航的代码中添加 if 并检查当前用户的角色类型 - 如果是管理员则显示链接。但是这个问题太宽泛了,因此不适合 SO。请访问help centre 查看how to ask a good question 以及该站点的on topic 的问题类型
-
你把
[Authorize (Roles="Admin")]放在哪里了?关于控制器方法?菜单是如何生成的..? -
如果您将授权属性放在呈现“联系”页面的控制器操作上,那很好,因为它会阻止非管理员通过 URL 手动访问它,而不是单击链接。所以不要把它拿走。但是菜单中的超链接是完全独立的。为此,正如 Pete 所说,您需要在视图的 Razor 代码中放置一个
if以检查用户的当前角色,并根据他们是否处于 Admin 角色或不是。 -
我把 [Authorize (Roles="Admin")] 放在 Contact is HomeController 后面,我不确定在哪里以及如何做才能使整个东西在主栏中不可见,不仅是为了限制对它的访问页。基本上我在做我的第一个学校项目,所以我不是“专家”,如果你知道我的意思,所以如果有人能更深入地告诉我在哪里以及如何通过这些检查生成“if”,我将不胜感激。
-
是的,这就是一般的想法。您可能需要在
if之前添加一个 @ - 检查 Razor 块的语法。另外你可能想要 User.IsInRole()
标签: c# html asp.net-core