在asp.net中显示动态对象列表的最佳方法

时间:2011-03-16 05:57:44

标签: c# asp.net

我正在构建一个asp.net页面,旨在显示查看该页面的用户的链接。

链接指向报告,报告具有安全性,并将作为此站点的一部分进行委派。

SQL表将保存每个存在的报告的记录及其相应的安全要求。我还没有完全想出系统的这一部分,但这不是问题。

当用户访问该页面时,我只想显示特定用户有权访问的记录。这引出了我的问题..基于用户登录(目前是模糊安全性)隐藏/显示链接的最佳方式是什么,它可以处理动态添加的新报告。

动态地说我的意思是如果我的网站有一个部分来创建一个每个人都有权访问的新报告链接,那么当用户访问该页面时,首页会自动显示这个新链接。

简单的用户案例: UserA拥有完整权限,因此他们登录并在页面上看到4个链接。 UserB拥有有限的权限,因此他们登录并在页面上看到1个链接。 UserX创建一个每个人都可以看到的新报告。 UserB重新登录,现在可以看到2个链接。

我的第一个想法是标签隐藏和显示,但这是愚蠢的,但这就是我所追求的一般概念..

希望这是有道理的,我期待着你的帮助。

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以DataList使用LabelHyperLink。选择记录时,只选择用户有权访问的记录。

答案 1 :(得分:1)

我能看到你的最简单方法是在没有显示和隐藏链接的情况下执行此操作,即根据用户从数据库获取链接。

另一种方法是从数据库获取链接并根据权限条件对其进行过滤并从中获取数据视图。使用数据绑定控件(转发器,数据列表,项目符号列表等)绑定dataview

如果您希望在asp.net端进行此操作,则可以使用站点地图提供程序(如果您未在asp.net中使用成员资格和角色提供程序,则使用OR动态站点地图提供程序)

希望这可以帮助你

答案 2 :(得分:1)

你应该看看登录控件:

http://msdn.microsoft.com/en-us/library/ms178329.aspx

在您的情况下,我将使用LoginView查看登录和匿名用户的不同信息。您还可以查看不同用户角色的不同信息:

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.rolegroups.aspx

希望这会有所帮助