使用“Windows身份验证”在ASP.NET MVC4应用程序中执行“授权”

时间:2014-07-08 04:04:29

标签: asp.net-mvc-4

在我的ASP.NET MVC4应用程序中,我正在使用Windows身份验证,并希望限制对各种角色的控制器操作方法的访问。类似的东西:

[Authorize(Roles="Administrator")]
public ActionResult Index(){...}

注意:用户列表及其相应的角色保存在SQL Server数据库中。

到目前为止,我找到了完美的解决方案。所有人都使用表单身份验证请帮助实现这一点。

1 个答案:

答案 0 :(得分:0)

几周前我刚刚实施了这项服务,在成功实施角色服务之前,您必须先了解一些项目。

  1. 使用aspnet_membership表构建数据库。这是一个 有关数据结构概述的文章。 Article

  2. 配置连接字符串以与您的数据库通信并允许此类授权方法。提供了一个非常通用的连接字符串,它们是更强大的方法。

    <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>
    
  3. 创建数据抽象方法。如果您使用Linq to Sql并使用dbcontext。您还可以使用aspnet_membership架构实现sprocs。

  4. 测试用户。登录用户并检查他们的角色。

    bool isUser = Roles.IsUserInRole("Administrator");
    
  5. 如需完整指南,请查看this article.