c#User.IsInRole命名空间

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

我的程序顶部有以下内容

using System.Web.Security; 

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

“User”这个名称在当前上下文中不存在。

这是我的部分代码:

  using System.Web.Security; .... .... if (User.IsInRole("Admin")) { } 

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

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

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

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

 Context.User.IsInRole("Admin") 

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

另外 :您可以查看此post,了解如何设置角色的使用 – User.IsInRole(“”)而不使用成员资格 。

查看ASP.NET MVC Membership类的以下用法:

  • ASP.Net MVC 3 Razor中的成员资格和授权
  • SimpleMembership,成员资格提供程序,通用提供程序以及新的ASP.NET 4.5 Web窗体和ASP.NET MVC 4模板
  • Asp.net会员 – 如何以编程方式确定用户是否在角色中
  • ASP.NET MVC成员资格角色

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

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

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

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

希望它会有所帮助:)