我需要具有以下功能的RoleProvider:
动态分配角色到任务
IPrincipals的认证/授权基于他们有权访问的系统中动态分配的任务
报告显示当前登录的用户以及其他常用用法统计信息。
我很确定我不得不自己动手,但我想确保我不会错过任何OSS甚至是MS。
我也在使用ASP.NET MVC,所以我的基本计划是编写一个自定义属性,如:[Authorize(Task=Tasks.DeleteClient)]
并将其放在需要授权的方法上。
我将根据用户在数据库中配置的任何设置,根据角色授权任务,而不是授权角色。
思想?
答案 0 :(得分:5)
您可能想查看NetSqlAzMan。它允许您定义任务并将其分配给角色,然后对IPrincipal对象进行身份验证和授权。
您可能需要滚动自己的安全属性,但NetSqlAzMan应该可以帮助您完成相当简单的任务。
答案 1 :(得分:0)
我们的某个系统遇到了类似的问题。我要做的第一件事是为您的特定任务创建更多的AuthorizeAttribute类 - 例如DeleteClientAuthorize等。然后,您可以在您的类中添加特定的逻辑。
只要您可以访问触发当前用户角色更改的例程,您就可以了。只需调用Membership.DeleteCookie(),这将强制下一个授权请求重新查询您的数据存储。正是在这一点上,您可以确定现在需要哪些角色。