Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net mvc中为控制器中的特定用户提供对操作方法的访问_C#_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 如何在asp.net mvc中为控制器中的特定用户提供对操作方法的访问

C# 如何在asp.net mvc中为控制器中的特定用户提供对操作方法的访问,c#,asp.net-mvc,asp.net-mvc-4,C#,Asp.net Mvc,Asp.net Mvc 4,这里,假设我们有两个用户User1和User2,并且 控制器中有两种动作方式 public class HomeController:Controller { public ActionResult Method1() { return View(); } public ActionResult Method2() { return View(); } } 对于user1,我希望提供两种

这里,假设我们有两个用户User1和User2,并且 控制器中有两种动作方式

  public class HomeController:Controller
   {

     public ActionResult Method1()
     {
       return View();
     }

     public ActionResult Method2()
     {
       return View();
     }
   }
对于user1,我希望提供两种方法的访问,对于user2,我只希望提供访问方法1


如何在MVC中实现这一点?任何人请帮助我?

您可以使用
Authorize
属性,并可以按如下方式装饰您的代码:-

public class HomeController:Controller
   {

     public ActionResult Method1()
     {
       return View();
     }

     [Authorize(Users="user1")]
     public ActionResult Method2()
     {
       return View();
     }
   }
有关详细信息:-


您可以使用
Authorize
属性,并可以按如下方式装饰代码:-

public class HomeController:Controller
   {

     public ActionResult Method1()
     {
       return View();
     }

     [Authorize(Users="user1")]
     public ActionResult Method2()
     {
       return View();
     }
   }
有关详细信息:-



考虑将角色签名给您的用户,并应用授权属性(例如,[Authorize(roles=“Administrators”)]仅允许作为管理员的用户)如何获取用户是管理员还是用户,假设我们提供[Authorize(user=username)],这里如何获取用户名?您不能使用变量。属性只能使用常量值,因此必须是Neel指定的
[Authorize(Users=“User1,User2”)]
。但如何知道,特定的用户登录名是“User1”或“User2”?请参见Neel的答案
Method1()
没有授权属性,因此任何人都可以访问它
Method2()
具有
[Authorize(Users=“User1”)]
功能,因此只有登录名为User1的用户才能访问它(User2或任何其他用户将获得401访问拒绝错误)。请考虑对用户进行sssigning角色并应用authorizeAttribute(例如,[Authorize(roles=“Administrators”)]仅允许管理员用户)如何获取用户是Admin还是user,假设我们提供[Authorize(user=username)],这里如何获取username?您不能使用变量。属性只能使用常量值,因此必须是Neel指定的
[Authorize(Users=“User1,User2”)]
。但如何知道,特定的用户登录名是“User1”或“User2”?请参见Neel的答案
Method1()
没有授权属性,因此任何人都可以访问它
Method2()
具有
[Authorize(Users=“User1”)]
因此只有登录名为User1的用户才能访问它(User2或任何其他用户将获得401访问拒绝错误)我可以为多个用户设置Method2吗?假设另一个用户说“user3”想要提供访问方法2(),我可以设置[Authorize(Users=“User1,user3,…)],像这样??是的,你可以这样做..通过链接,你会在示例中找到他们做过的像[Authorize(Users=“Alice,Bob”)@Chandulast一个疑问,如何获得“user1”是Alice还是Bob,假设我用字符串username=“Alice”声明,我可以提供像[Authorize(User=username)这样的内容吗我想知道我可以直接将用户列表动态地放在users属性中吗?或者我必须进行自定义授权才能做到这一点?@Chandu和Vishal看一下这里可能是你在这里得到答案我可以为多个用户设置Method2吗?假设另一个用户说“user3”想要提供访问方法2()我可以设置[Authorize(users=“user1,user3,…)],像这样??是的,你可以这样做..通过链接,你会在示例中找到他们所做的像[Authorize(Users=“Alice,Bob”)@Chandulast一个疑问,如何获得“user1”是Alice还是Bob,假设我用字符串username=“Alice”声明,我可以提供像[Authorize(User=username)这样的内容吗我只是想知道我可以直接将用户列表动态地放在用户属性中吗?或者我必须通过自定义授权才能这样做?@Chandu和Vishal看看这里,你可能在这里得到你的ans吗