如何使用Fluent NHibernate在MVC3中实现基于角色的授权?

时间:2012-08-08 17:23:44

标签: asp.net-mvc-3 fluent-nhibernate

我们的MVC3应用程序正在使用Fluent NHibernate,需要实现用户登录,身份验证和授权。

我在控制器类中看过使用[Authorize]方法的文章。但是,鉴于Fluent NHibernate正在使用,我不确定这一切在我们的情况下是如何工作的。

有人可以就如何使这项工作分享一些建议吗?

1 个答案:

答案 0 :(得分:2)

您可以write a custom role provider实施RoleProvider课程。在您的RoleProvider类的自定义实现中,您可以使用您想要的任何数据库访问技术 - FluentNhibernate或其他。基本上您有兴趣实现IsUserInRole方法。

然后用Authorize属性装饰你的控制器/动作:

[Authorize(Roles = "Admin")]
public ActionResult Foo()
{
    return Content("Only administrators can see this message");
}

这是另一个blog post,其中详细介绍了编写自定义角色提供程序。