5

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

我的程序顶部有以下内容

    using System.Web.Security;

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

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

这是我的部分代码:

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

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

     }

我认为这与命名空间有关,但查看文档,我只需要 System.Web.Security。

4

3 回答 3

11

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

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

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

Context.User.IsInRole("Admin")

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

另外:您可以查看这篇关于如何在不使用 Membership 的情况下设置角色使用的帖子 - User.IsInRole(" ")

ASP.NET MVC Membershipclasses中查找以下用法:

于 2013-01-09T21:08:53.513 回答
4

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

因此,根据您的评论,我将假设您在一个不是控制器的类中工作,而是在您的 MVC 项目中。所以你应该能够像这样做你正在尝试的事情

if(HttpContext.Current.User.IsInRole("Admin"))
    {
      //...         
    }
于 2013-01-09T21:05:43.540 回答
0

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

希望它会有所帮助:)

于 2017-11-20T14:34:30.463 回答