【问题标题】:Filtering Repeater items based on user status/role根据用户状态/角色过滤中继器项目
【发布时间】:2010-12-09 17:13:28
【问题描述】:

我有一个棘手的要求,我需要根据查看产品的用户的状态对附加到产品、可供下载的文档进行分类。 IE。我的站点显示产品列表,点击一个显示产品详情页面,该页面包含一个与产品相关的文档列表,如数据表、用户手册等。

我被要求将文档分为三类可用性,即 v.i.z。所有用户均可免费使用的,包括匿名用户;可供登录用户使用的;以及那些在下载文档之前提供联系信息的匿名用户可用的,大概是为了增加销售线索。

匿名和登录的可用性很容易,但第三个对我来说似乎有点棘手。我的第一个问题是,有没有一种方法可以过滤仅登录用户的文档,而无需连接到 ItemDataBound 或其他东西,我的第二个问题是,对于用户必须提供联系信息才能下载文档的情况,推荐什么?

在第二个问题中,我想到了实际注册用户,但无需他们访问新的用户注册页面,然后我就有了基于角色的文档过滤。目前,新用户注册流程会自动将 Member 角色添加到所有新用户。我“安静地”注册的用户,只是为了让他们可以下载文档,不会被分配成员角色,将他们与正常登录的成员区分开来。我还可以采取哪些其他方法?

【问题讨论】:

    标签: asp.net roles security-roles rails-authorization


    【解决方案1】:

    这个实现很大程度上取决于你想要完成什么以及如何去做。

    例如,如果我无权访问该文档,我应该看到链接吗?

    如果您的实现是所有用户都应该能够看到它,但“获取它”的实际行为取决于个人角色或成员资格,那么您可以通过实现一个“处理程序”下载来相当容易地解决它受保护的文档,这样您就不会显示直接文件链接。然后,该处理程序可以验证安全性,如果不允许,它可以根据需要将它们带到登录或注册页面。

    如果用户在满足要求之前看不到文档,那么我会在您绑定到转发器之前进行过滤。

    【讨论】:

    • 在绑定前过滤是一个非常有吸引力的选择。我可以通过用户角色和文档集合之间的 LINQ 连接来做一些时髦的事情。
    • 唉,绑定后我必须“过滤”,并且会查看处理程序,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 2016-01-02
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多