从我的主页面调用我的HomeController中的方法

问题描述:

我试图隐藏我的主页上的一些管理员特定的按钮从没有管理员的用户。从我的主页面调用我的HomeController中的方法

我的代码看起来像这样至今:

<% if (Request.IsAuthenticated) 
    {%> 
     <%: Html.ActionLink("Administrer", "Index", "User", new { Area = "Users" }, new { @class = "menubutton", @id = "settingsbutton" })%> 
     <%} else { }%> 

现在我想要做的IF()语句检查如果当前用户是管理员。即时通讯使用ASP.NET会员系统,并为每个用户提供一个特定类别,并提供一些关于他是否是管理员(布尔)的信息。

我的问题是我如何去调用一个方法来检查这个或类似的东西?

+0

我在想这将是像if(Request.IsAuthenticated &&“检查管理员的方法”) – AronChan 2012-04-11 18:36:35

+0

我只是不知道如何从主页面调用这种方法到控制器 – AronChan 2012-04-11 18:37:54

+1

请参阅http:// *。 com/questions/409213/how-can-i-create-a-view-that-has-different-displays-according-the-role-the-us或http://*.com/questions/4610749/ asp-net-mvc-check-role-inside-view – 2012-04-11 18:48:22

<% if (Request.IsAuthenticated && User.IsInRole("Administrator")) 
    {%> 
     <%: Html.ActionLink("Administrer", "Index", "User", new { Area = "Users" }, new { @class = "menubutton", @id = "settingsbutton" })%> 
     <%} else { }%> 

如果您使用的是ASP.NET成员提供程序和ASP.NET角色提供给用户链接到自己的角色,你可以调用视图的IPrincipal User对象的IsInRole(string)方法。

+0

看来我没有IPrincipal用户对象。我究竟该如何去做到这一点? – AronChan 2012-04-11 21:28:15

+0

我设法访问我的用户通过使用:HttpContext.Current.User.IsInRole(“管理员”) 这是像你的例子一样好,或有一个特定的原因,你这样做? – AronChan 2012-04-11 22:20:27

+0

'HttpContext.Current.User.IsInRole(“administrator”)'很好。也许它只是MVC3或Razor视图引擎,默认在视图页面中提供@User。 – danludwig 2012-04-11 22:27:47