如何使用流畅的NHibernate在MVC3中实现基于角色的授权?
问题描述:
我们的MVC3应用程序使用流利的NHibernate并需要实现用户登录,身份验证和授权。如何使用流畅的NHibernate在MVC3中实现基于角色的授权?
我见过在控制器类中使用[Authorize]
方法的文章。然而,我不确定这是如何在我们的情况下工作,因为流利的NHibernate正在使用。
任何人都可以分享一些关于如何使这项工作的建议吗?
答
你可以write a custom role provider实现RoleProvider类。在您的RoleProvider类的自定义实现中,您可以使用任何您想要的数据库访问技术 - FluentNhibernate或其他。基本上你有兴趣实施IsUserInRole方法。
然后装饰与授权属性你的控制器/动作:
[Authorize(Roles = "Admin")]
public ActionResult Foo()
{
return Content("Only administrators can see this message");
}
而这里的另一个blog post
覆盖写入更详细的自定义角色提供商。