![]() |
1
1
嗯,没有 吨 这里将详细介绍,但我怀疑您可能会从多态性(即各种接口实现)中获益,以处理不同用户组之间的应用程序部分。控制容器的反转 Spring.NET 可以帮助您根据当前用户角色连接/配置这些不同的实现。您还可以从Spring面向方面的编程API中获益,在该API中,您可以在业务层/数据访问层中修饰方法,以便执行授权逻辑。 |
![]() |
2
1
“团体”是指“角色”吗?如果你在谈论角色,你可以通过这样做来设定你的行为。
另一种选择可能是使用基于角色的用户控件。因此,当您有页面加载时,它将基于请求它的角色加载一个用户控件。 您可以让一个占位符空着,并从codebehind调用loadcontrol方法。 那么所有用户控件都将与您的角色匹配
角色=admin usercontrol=admin.ascx
|
![]() |
3
1
我认为,在不太详细地讨论IOC等问题的情况下,我会保持它非常简单,并且有一个简单的旧工厂类,您可以使用它根据当前发出请求的用户返回适当的实例化的UI元素[用户控件]。在执行此操作时,您将在一个位置拥有所有“if”语句。要用“if”语句来表示,您只需创建一个映射配置文件或db表,其中包含对用户控件的引用,以便在用户属于特定组时使用。 注意:这两个选项都将导致在页面上创建动态控件,这并不是没有它自己的复杂性,但我已经在应用程序中成功地使用了一段时间了,没有问题-这只是一个问题,让页面生命周期变得越来越脏,比我最初感觉舒服。 |
![]() |
4
0
您也可以从主体对象继承来处理这个问题,无论您希望如何处理。 以下是我在具有如下自定义规则的应用程序中所做的操作: 创建了我自己的iprincipal对象,该对象是我的“person”对象的后代,可以继承查找组和角色等的能力:
使当前上下文使用我的IPrincipal对象:
然后我创建了静态方法,这样我就不必每次都像这样为当前用户进行强制转换:
然后您可以调用像currentuser.user.isingroup()这样的东西。 |
![]() |
Melanie · ASP。子项未继承Net MenuItem格式 6 年前 |
![]() |
Diego Razquin · Asp:按钮及其控制器 6 年前 |
![]() |
Chan Yoong Hon · 导航到新页面并显示警报框 6 年前 |