在我的ASP.NET MVC4应用程序中,我正在使用Windows身份验证,并希望限制对各种角色的控制器操作方法的访问。类似的东西:
[Authorize(Roles="Administrator")]
public ActionResult Index(){...}
注意:用户列表及其相应的角色保存在SQL Server数据库中。
到目前为止,我找到了完美的解决方案。所有人都使用表单身份验证请帮助实现这一点。
答案 0 :(得分:0)
几周前我刚刚实施了这项服务,在成功实施角色服务之前,您必须先了解一些项目。
使用aspnet_membership表构建数据库。这是一个 有关数据结构概述的文章。 Article
配置连接字符串以与您的数据库通信并允许此类授权方法。提供了一个非常通用的连接字符串,它们是更强大的方法。
<roleManager enabled="true" defaultProvider="SqlRoleProvider">
<providers>
<add name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="CorporateSiteConnectionString"/>
</providers>
</roleManager>
<membership defaultProvider="CustomizedMembershipProvider">
<providers>
<add name="CustomizedMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="CorporateSiteConnectionString" applicationName="Sales Site"/>
</providers>
</membership>
创建数据抽象方法。如果您使用Linq to Sql并使用dbcontext。您还可以使用aspnet_membership架构实现sprocs。
测试用户。登录用户并检查他们的角色。
bool isUser = Roles.IsUserInRole("Administrator");
如需完整指南,请查看this article.