【问题标题】:asp.net - Developing web application with features enabled based on configurationasp.net - 开发基于配置启用功能的 Web 应用程序
【发布时间】:2012-05-05 23:56:37
【问题描述】:

我需要开发一个基于网络的产品。此功能将根据订阅类别提供给用户,例如基本版/高级版/企业版。我想为这些订阅类别维护单一来源。

我的问题是,

如何设计基于配置/订阅类别启用功能的Web应用程序?

提前致谢

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    这是一个非常笼统的问题,我会笼统地回答。

    您可以将角色分配给您的注册用户,然后使用IsUserInRole 来检查 看看你要展示什么,不展示什么。

    为了提高速度,您可以将权限分配给用户会话,而不是总是调用IsUserInRole

    您可以使用Panel 及其可见性打开和关闭页面的某些部分。同时关闭隐藏的面板的视图状态。

    您也可以使用UserControls 在其中检查用户是否有权查看它,然后在 OnInit 中隐藏它,并禁用它的 ViewState。

    当然,如果不允许完整页面,您可以随时进行完整重定向。

    所以一个完整的页面可以有PanelsUserControls,它的浏览量取决于用户级别。

    【讨论】:

    • 谢谢...如果我在单个页面上加载了更多控件并根据数据库上的配置启用/禁用,它会影响此页面的性能以及如何处理此问题?因为我的用户大多只在这些核心页面上工作。
    • @er.g.ilango 我不知道它是否真的影响性能,这是你需要检查并避免一些想法的东西,或者使用其他方式加载或不加载。关于这个认为的问题是不启用它,但我告诉你这是一个非常普遍的问题。你需要做一些测试,多少个控件?你将如何渲染它们,它们做什么......这就是你设计它的方式。性能在您如何从数据库中获取数据、如何处理会话以及如何呈现页面方面存在问题。
    【解决方案2】:

    你将无法得到这个现成的,你必须根据你正在使用的技术来设计应用程序。

    我有一个类似的项目正在进行,我们将特征列表存储在数据库中,当页面初始化时,会在会话中加载特征列表。

    在各个页面上,我们根据功能可用性显示/隐藏控件。

    Offcourse Single 功能还可以根据用户角色进行分类,我们可以使用 FormAuthentication 方法检查并相应地更改页面服务器端。

    如果您有任何具体的想法并有相关问题,请告诉我。

    【讨论】:

    • 谢谢...我也在考虑与您提到的相同的方法...但是我的限制是,我在这个系统上的核心页面很少。所以,我只需要在这些页面上合并大部分产品功能。如果我在单个页面上加载了更多控件并根据数据库上的配置启用/禁用,它会影响此页面的性能以及如何处理这个问题?因为我的用户大多只在这些核心页面上工作。
    • 当然,在一个页面上加载所有数据并根据角色/功能启用/禁用不是一个好习惯,尽管我们也这样做了。由于页面包含从服务器端呈现,您可以确保您不应该处理您不打算呈现的数据,因此它不会降低性能。
    猜你喜欢
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多