dan*_*n_l 4 authorization rhino-security asp.net-mvc-2
我有一个asp.net mvc项目,持久性由存储库处理.使用表单身份验证.现在我需要实施授权.例如,我需要确保经理用户只能打开他/她的任务并将工作人员分配到任务中.工人只能看到分配给他/她的任务.超级版主可以编辑所有内容.是否有任何可以使用的框架允许我定义权限?
我正在评估Ayende Rhino Security.我在哪里可以获得更多示例代码?您对Rhino Security有何看法?
我的项目使用Linq to SQL并且没有使用NHibernate.Rhino Security可以在没有NHibernate的情况下工作吗?
我担心,Rhino Security依赖Nhibernate来工作.
我一直在评估Rhino Security几个月,最后,我决定使用它,因为它是一个非常好的产品.
您可以在Ayende的博客或此处找到有用的信息.我有点疏远将它与StructureMap(而不是Castle Windsor)集成.你可以在这里找到一些信息.
要做你想要实现的目标,你必须定义一个实现IEntityInformationExtractor接口的类.
首先,您必须添加以下引用(我已经使用NH 3.0重新编译了Rhino Security):
然后定义一个引导程序:
public static class Bootstrapper
{
public static void Initialize()
{
ObjectFactory.Initialize(cfg =>
{
cfg.UseDefaultStructureMapConfigFile = false;
cfg.IgnoreStructureMapConfig = true;
cfg.AddRegistry<StructureMapRegistry>();
});
ServiceLocator.SetLocatorProvider(() => new StructureMapServiceLocator(ObjectFactory.Container));
}
}
Run Code Online (Sandbox Code Playgroud)
然后定义StructureMap注册表类:
public class StructureMapRegistry : Registry
{
public StructureMapRegistry()
{
string ConnDb = "Data Source=(local); Initial Catalog=RhinoSecurity_Test; Trusted_Connection=true;";
For<ISessionFactory>()
.Singleton()
.TheDefault.Is.ConstructedBy(() => new NHSessionFactory(ConnDb, false).SessionFactory);
For<ISession>()
.Singleton()
.TheDefault.Is.ConstructedBy(x => x.GetInstance<ISessionFactory>().OpenSession());
For<IAuthorizationRepository>()
.Use<AuthorizationRepository>();
For<IPermissionsService>()
.Use<PermissionsService>();
For<IAuthorizationService>()
.Use<AuthorizationService>();
For<IPermissionsBuilderService>()
.Use<PermissionsBuilderService>();
For<IEntityInformationExtractor<Model.Task>>()
.Use(p =>
{
return (new TaskInfromationExtractor(p.GetInstance<ISession>()));
});
}
}
Run Code Online (Sandbox Code Playgroud)
NHSessionFactory基本上创建了一个NH会话工厂.
我创建了一个实现IEntityInformationExtractor 的类(TaskInfromationExtractor).这将允许您为任务实体定义权限.现在您的应用已经准备就绪 你只需要"bootstrap"结构图:
当你的应用程序启动时,你会这样做.现在您可以使用Rhino安全存储库和服务来创建用户,组,关系等等,作为我给你建议的链接.你可以在这里找到我准备的样品
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |