【问题标题】:using fluentsecurity in modular system mvc 4在模块化系统 mvc 4 中使用 fluentsecurity
【发布时间】:2013-04-15 10:05:23
【问题描述】:

我的解决方案中有一个名为 app_ui 的 MVC 应用程序作为启动项目,解决方案中有一些其他应用程序作为模块。然后在启动项目中,我通过路由表访问模块及其操作。我使用fluentsecurity 进行授权,并在Global.asax 中为app_ui 中的控制器配置它,一切正常。但是对于模块中的控制器和操作,我无法将配置添加到 fluentsecurity,并且想知道如何为它们添加设置策略。

【问题讨论】:

    标签: security asp.net-mvc-4 authorization fluent-security


    【解决方案1】:

    您可以使用 FluentSecurity 2.0 (beta1) 中的 Profiles 来做到这一点!这是文档的链接:https://github.com/kristofferahl/FluentSecurity/wiki/Profiles

    1) 在您的模块中创建个人资料

    public class AdminAreaSecurityProfile : SecurityProfile
    {
        public override void Configure()
        {
            For<UserAdminController>().RequireRole(UserRole.Administrator)
            For<BlogAdminController>().RequireRole(UserRole.Editor)
        }
    }
    

    2) 从主应用扫描配置文件

    SecurityConfigurator.Configure(configuration =>
    {
        configuration.GetAuthenticationStatusFrom(() => HttpContext.Current.User.Identity.IsAuthenticated);
    
        configuration.Scan(scan =>
        {
            scan.AssembliesFromApplicationBaseDirectory();
            scan.LookForProfiles();
        });
    });
    

    【讨论】:

    • 为您解答。我喜欢这个图书馆。我遇到的问题是模块程序集不在 Applicationbasedirectory 中,所以我使用以下代码:scan.AssembliesFromPath(path, a => true);
    猜你喜欢
    • 2014-04-11
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 2021-04-19
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多