本质上,当某人不属于我的属性中列出的角色时,我想显示一条友好的消息。目前我的应用程序只是将用户吐回到登录屏幕。我已经阅读了一些关于创建仅扩展 [AuthorizeAttribute] 的自定义属性的帖子,但我认为必须有一些开箱即用的东西来做到这一点?
有人可以指出我需要查看的正确方向,不要让它将用户发送到登录表单,而只是向他们发送“未授权”消息?
最佳答案
如果简单或完全控制逻辑是您想要的,您可以在您的操作方法中调用它:
User.IsInRole("NameOfRole");
它返回一个 bool 值,您可以根据该结果执行其余的逻辑。
我在某些情况下使用的另一个是:
System.Web.Security.Roles.GetRolesForUser();
我认为这会返回一个 string[] 但不要引用我的话。
编辑:
一个例子总是有帮助...
public ActionResult AddUser()
{
if(User.IsInRoles("SuperUser")
{
return View("AddUser");
}
else
{
return View("SorryWrongRole");
}
}
只要您的返回类型是“ActionResult”,您就可以返回任何可接受的返回类型(ViewResult、PartialViewResult、RedirectResult、JsonResult...)
关于asp.net-mvc - .net MVC Controller 操作方法的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022614/