C#User.IsInRole命名空间(c# User.IsInRole Namespace)

2019-08-06 05:43发布

请注意,我使用C#MVC 3,我想一类,而不是一个控制器中使用。

在我的程序之上,我有以下

    using System.Web.Security;

我试着做以下,但得到的消息:

该名“用户”并不在当前的背景下存在。

这里是我的部分代码:

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

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

     }

我想这是必须做一些事情的命名空间,但在看文档,所有我需要的是System.Web.Security。

Answer 1:

先尝试:在执行视图中,检查在控制器中执行以下HttpContext.Current.User.IsInRole("Admin") -这条线检查你的价值。

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

解决方案2:查看默认MVC3项目:

Context.User.IsInRole("Admin")

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

另外 :你可以检查这个帖子有关如何设置角色的使用- User.IsInRole(”“),而无需使用会员 。

寻找具有以下使用ASP.NET MVC Membership类:

  • 会员资格和授权在ASP.Net MVC 3剃须刀
  • SimpleMembership,会员供应商,环球供应商和新的ASP.NET 4.5 Web Forms和ASP.NET MVC 4个模板
  • Asp.net会员-如何确定程序是用户在角色
  • ASP.NET MVC成员资格角色


Answer 2:

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

因此,根据您的意见,我会假设你是在一个类,它是不是一个控制器的工作,但你的MVC项目中。 所以,你应该能够做你正在尝试像这样什么

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


Answer 3:

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

希望这将有助于:)



文章来源: c# User.IsInRole Namespace