如何实现只有名为Admin的用户才能访问的功能?
在没有角色的情况下执行此操作非常重要!
像:
[Autohrize] =>登录用户
但我想要:
如果用户名就像admin =>你可以访问该页面
谢谢
答案 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();
}
}