asp.net - 使用基于配置启用的功能开发Web应用程序

问题描述:

我需要开发基于Web的产品。用户可以根据基本版本/高级版本/企业版本等订阅类别使用此功能。我想维护这些订阅类别的单一来源。asp.net - 使用基于配置启用的功能开发Web应用程序

这里我的问题是,

如何设计Web应用程序,它具有使能的功能基础上配置/订阅类别?

在此先感谢

这是非常普遍的问题,我会一般回答。

您可以将角色分配给您的注册用户,然后使用IsUserInRole至 查看您将要显示的内容以及不显示的内容。

为了获得速度,你可以将权限分配给用户会话,而不是随时拨打IsUserInRole

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

另一种方法是,您可以使用UserControls,在其中检查用户是否有权查看它,并将其隐藏在OnInit中,并禁用它的ViewState。

当然,如果整个页面不被允许,你总是可以做一个完整的重定向。

因此整页可以有​​和UserControls,它的视图取决于用户级别。

+0

谢谢... 如果我在单页上加载了更多的控件,并根据数据库的配置启用/禁用, 会影响此页面的性能以及如何处理这个问题?因为我的用户大多只在这些核心页面上工作。 – 2012-04-25 12:20:49

+0

@ er.g.ilango我不知道它的真实影响性能,这是你需要检查和避免一些想法,或使用其他方式加载或不加载。关于这个问题的想法不是启用它,但我告诉你这是非常普遍的问题。你需要做一些测试,有多少控件?你将如何呈现它们,他们做了什么......这就是你设计它的方式。性能方面的问题在于如何从数据库获取数据,如何处理会话以及如何呈现网页。 – Aristos 2012-04-25 20:11:08

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

我有类似的项目正在进行中,我们在数据库中存储功能列表,并在页面初始化时加载会话中的功能列表。

在各种页面上,我们基于功能可用性显示/隐藏控件。

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

让我知道你是否有任何具体的做法,并有问题相关。

+0

谢谢... 我也想着你提到的相同的方法... 但我的约束是,我在这个系统上有几个核心页面。所以,我必须将这些产品的大部分功能 只包含在这些页面上。 如果我在单页上加载了更多的控件,并根据DB上的配置启用/禁用, 会影响此页面的性能以及如何处理这个问题?因为我的用户大多只在这些核心页面上工作。 – 2012-04-25 12:18:36

+0

offcourse在一个页面上加载所有数据并根据角色/功能启用/禁用是不好的做法,尽管我们也这样做了。因为页面包含的是从服务器端渲染的,所以你可以确保你不应该处理你不会渲染的数据,因此它不会降低性能。 – 2012-04-25 12:33:42