【问题标题】:How permissions of a role be overridden with the permission of a user in membership class如何使用成员资格类中用户的权限覆盖角色的权限
【发布时间】:2013-05-18 09:59:39
【问题描述】:

我在 MVC3 中工作。我创建了 3 个角色:管理员、经理和员工,并让 manager1 和 manager2 担任经理角色。我想给经理添加、编辑、查看、删除权限。我不想给 manager1 删除权限。我可以覆盖用户对角色的权限吗?如果可以,请告诉我如何使用会员等级来做到这一点?有没有关于提供权限的好文章?

【问题讨论】:

    标签: asp.net-mvc-3 asp.net-membership


    【解决方案1】:
    Use the deny technique..
    
     public class DenyAttribute : AuthorizeAttribute
        {
            protected override bool AuthorizeCore(HttpContextBase httpContext)
            {
                return !base.AuthorizeCore(httpContext);
            }
        }
    
    use this like authorizeattribute only.
    

    【讨论】:

    • 这对我有帮助。我想知道更多选择它
    • 它对我来说很好用。但是当我在方法之前使用拒绝属性时,它会拒绝该操作并被重定向到登录页面。我想要一个通知/警报消息而不是它。你能解释一下怎么做吗?
    【解决方案2】:

    首先,会员资格提供者不提供任何特权,他们只存储帐户、个人资料、角色。 访问您可以授予角色和/或用户的一些操作,在控制器和操作上设置 attibute [AuthorizeAttribute(Roles = "role1", Users = "manager2")]。因此,使用这些技术,您可以扩展 manager2 的权限。

    【讨论】:

    • [AuthorizeAttribute(Roles = "Manager", Users = "manager2")] 将只授予 manager2 特权,并且限制 manager1 访问。所以上面提到的等于 [AuthorizeAttribute( Users = "manager2")] 仅限。
    • 当 [AuthorizeAttribute(Users = "manager2")] 在允许对 manager2 执行该操作的方法之前使用时。它拒绝 manager1 的该操作并被重定向到登录页面。我想要一个通知/警报消息而不是它。你能解释一下怎么做吗?
    • 主要思想是增加权限,而不是减少权限。所以角色role1可以读取,用户manager1也可以删除等。
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2021-05-29
    • 2015-11-26
    • 2018-11-18
    • 2011-12-02
    • 2015-05-28
    • 2017-10-13
    相关资源
    最近更新 更多