c#User.IsInRole命名空间

时间:2013-01-09 21:00:25

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-membership

注意,我使用的是c#MVC 3,我试图在类中使用它,而不是控制器。

我的程序顶部有以下内容

    using System.Web.Security;

我尝试执行以下操作但收到消息:

当前上下文中不存在“用户”名称。

这是我的部分代码:

     using System.Web.Security;
     ....
     ....

     if (User.IsInRole("Admin"))  
     {

     }

我认为必须对命名空间做一些事情,但是看一下文档,我需要的就是System.Web.Security。

3 个答案:

答案 0 :(得分:8)

执行视图时

先尝试,检查控制器HttpContext.Current.User.IsInRole("Admin")中的以下内容 - 此行检查您的值。

如果您加载了当前的HttpContext,它应返回bool值。

解决方案#2:查看默认的mvc3项目:

Context.User.IsInRole("Admin")

而不是Page.User.IsInRole("Admin")

此外:您可以查看此帖子,了解如何设置角色的使用情况 - User.IsInRole(" ") without using Membership

使用 ASP.NET MVC Membership类查找以下用法

答案 1 :(得分:2)

添加using System.Web.Mvc; 应该这样做

因此,基于您的评论,我将假设您正在一个不是Controller的类中工作,但是在您的MVC项目中。所以你应该能够做你想做的事情

if(HttpContext.Current.User.IsInRole("Admin"))
    {
      //...         
    }

答案 2 :(得分:0)

使用System.Web.HttpContext.Current.User.IsInRole("yourRole")

希望它会有所帮助:)