2014-07-08 29 views
0

在我的ASP.NET MVC4应用程序中,我使用Windows身份验证并希望限制各种角色的控制器操作方法的访问权限。例如:使用“Windows身份验证”在ASP.NET MVC4应用程序中执行“授权”

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

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

我一直在找到完美的解决方案。所有的都是使用表单验证。请帮助执行此操作。

+0

你可以只应用此过滤器......像ActionResults过滤器,如果用户有效,他们可以验证再经过index动作会调用其他明智他们不打电话。 OnActionFilter为我们提供了取消呼叫的Appotinity ... –

回答

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"); 
    

对于一个完整指南请查看this article.

+0

我的应用程序很简单。我正在寻找简单的解决方案来实施授权。请以这种方式帮助。 –

+0

由于您已有用户群。我会建议你扩展你的过滤器或创建一个自定义过滤器[这里描述](http://stackoverflow.com/questions/13264496/asp-net-mvc-4-custom-authorize-attribute-with-permission-codes -without-角色) –

相关问题