asp.net-mvc - .net MVC Controller 操作方法的属性

标签 asp.net-mvc authentication membership-provider roleprovider

本质上,当某人不属于我的属性中列出的角色时,我想显示一条友好的消息。目前我的应用程序只是将用户吐回到登录屏幕。我已经阅读了一些关于创建仅扩展 [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/

相关文章:

javascript - 使用 AngularJS 和 WebApi 对于大型复杂系统有好处吗?问题还

javascript - 我可以从 kendo UI MVC 项目中删除什么

azure - Azure AD B2C 调用signin-oidc 回调时出现 500 错误

python - 如何使用 django-python3-ldap 从 Active Directory 组在 Django 模型中创建组和权限?

asp.net - 如何部署 ASP.net 自定义 MembershipProvider?

c# - 使用成员(member)提供者

c# - MVC C# 编译 debug = true 仍然捆绑

c# - 更改默认的 ASP.NET 身份双因素记住 Cookie 过期时间

android - 当我站在 firebase 身份验证 UI 上按下后退按钮时,mt 应用程序不会退出,而是显示带有 hello world 文本的 Activity

asp.net - 使用SimpleMembershipProvider时使用盐