UserBased访问功能

时间:2017-07-13 07:21:29

标签: c# asp.net asp.net-mvc authentication authorization

如何实现只有名为Admin的用户才能访问的功能?
在没有角色的情况下执行此操作非常重要!

像:
[Autohrize] =>登录用户
但我想要:
如果用户名就像admin =>你可以访问该页面

谢谢

2 个答案:

答案 0 :(得分:0)

如果我告诉你,你想用用户名授权用户。您可以使用自定义授权属性执行此操作。

public class UserNameAuthorizationAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        base.AuthorizeCore(httpContext);
        dynamic user = HttpContext.Current.Session["user"];
        return user.name == "Admin";
    }
}

可以找到更多详细信息here

答案 1 :(得分:0)

MSDN文章中列出了不同的选项。你想要的选项是装饰器“[Authorize(Users =”admin“)]”for SpecificUsersOnly方法。

 public class HomeController : Controller
 {
   public ActionResult Index()
   {
     ViewData["Message"] = "Welcome to ASP.NET MVC!";

     return View();
   }

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

   [Authorize]
   public ActionResult AuthenticatedUsers()
   {
       return View();
   }

   [Authorize(Roles = "Admin, Super User")]
   public ActionResult AdministratorsOnly()
   {
       return View();
   }

   [Authorize(Users = "admin")]
   public ActionResult SpecificUserOnly()
   {
       return View();
   }
 }