如何在Site.Master页面上检查当前用户角色?

时间:2010-10-15 11:11:00

标签: asp.net-mvc site.master

我需要在Site.Master中编写一个菜单,其中某些菜单项必须是可见的,具体取决于当前用户角色。如何从页面查看? 通常只会在控制器中编写逻辑,但Site.Master没有(至少在我的项目中!)。我很感激任何指针。

1 个答案:

答案 0 :(得分:5)

使用HttpContext.Current.User。

从您的视图/部分视图/母版页中始终可以看到。

例如,要显示给定角色的不同html,比如MyRole,您只需写:

<% if(HttpContext.Current.User.IsInRole("MyRole")) { %>

    // tags for MyRole

<% } else { %>

    // tags for other users

<%} %>

这很好,因为它是属于View(或母版页)的“显示逻辑”,而不是属于控制器的“应用程序逻辑”。

请注意,视图只是模板。你可以在不弄乱整洁的MVC模式的情况下编写代码,只要它只是显示逻辑。

视图或母版页“没有控制器”。它们只是控制器可以找到和使用的模板。