在我的ASP.NET MVC4应用程序中,我使用Windows身份验证并希望限制各种角色的控制器操作方法的访问权限。例如:使用“Windows身份验证”在ASP.NET MVC4应用程序中执行“授权”
[Authorize(Roles="Administrator")]
public ActionResult Index(){...}
注意:用户列表及其相应角色保存在SQL Server数据库中。
我一直在找到完美的解决方案。所有的都是使用表单验证。请帮助执行此操作。
在我的ASP.NET MVC4应用程序中,我使用Windows身份验证并希望限制各种角色的控制器操作方法的访问权限。例如:使用“Windows身份验证”在ASP.NET MVC4应用程序中执行“授权”
[Authorize(Roles="Administrator")]
public ActionResult Index(){...}
注意:用户列表及其相应角色保存在SQL Server数据库中。
我一直在找到完美的解决方案。所有的都是使用表单验证。请帮助执行此操作。
我刚刚在几个星期前实施了这项服务,在成功实施角色服务之前,您必须查看几个项目。
用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.
我的应用程序很简单。我正在寻找简单的解决方案来实施授权。请以这种方式帮助。 –
由于您已有用户群。我会建议你扩展你的过滤器或创建一个自定义过滤器[这里描述](http://stackoverflow.com/questions/13264496/asp-net-mvc-4-custom-authorize-attribute-with-permission-codes -without-角色) –
你可以只应用此过滤器......像ActionResults过滤器,如果用户有效,他们可以验证再经过index动作会调用其他明智他们不打电话。 OnActionFilter为我们提供了取消呼叫的Appotinity ... –