如何在Angular2 + ASP.NET MVC应用程序中隐藏特定用户角色的angular2模块实现?

时间:2017-03-17 17:36:54

标签: asp.net-mvc angular angular2-modules

在应用程序中,我应该确保特定的用户角色,无法看到为其他用户角色设计的某些组件实现(管理员必须查看所有内容,用户不应该看到管理员特定的内容)。

最佳做法是什么?

目前的解决方案:

在我的asp.net mvc应用程序中,我有systemjs.config.js个文件指向Main角度模块,用于引导整个angular2应用程序。

packages: {
        app: {
            main: './main.js',
            defaultExtension: 'js'
        },

我有模块:

AdminModule
UserModule
SharedModule
AdminSpecificComponentsModule

我不希望User看到AdminSpecificComponentsModule的实施。 Html模板,js ......

所以我使用2 systemjs.config.js个文件。而不是单Main个模块入口点有MainAdminMainUser,而MainUser没有注入AdminSpecificComponentsModule

每个用户角色都拥有自己的MVC View/Controller(称之为工作空间),并在其中引用了适当的systemjs.config.js

<script src="../user-systemjs.config.js"></script>
<script>
    System.import('app').catch(function(err){ console.error(err); });
</script>
<user-app></user-app>

<script src="../admin-systemjs.config.js"></script>
<script>
    System.import('app').catch(function(err){ console.error(err); });
</script>
<admin-app></admin-app>

在生产环境中,我们必须分别为每个用户角色绑定JS,HTML,并确保User无法提供用于Admin角色的捆绑包。

使用该技术堆栈是否有更聪明的方法来做这样的事情?

提前致谢

0 个答案:

没有答案