【问题标题】:Alternative approach to user management in asp.net web applicationasp.net Web 应用程序中用户管理的替代方法
【发布时间】:2010-01-28 07:49:32
【问题描述】:

我正在使用 asp.net 2.0。我一直在使用 asp.net 会员提供程序进行用户管理。但是我认为如果我可以在不使用 asp.net 中提供的角色和成员资格提供程序的情况下做到这一点,这将更有效率。事实上,当我添加登录控件时,我看到了大量的标记, 在 asp.net 网页中创建用户控件等。

我所说的用户管理,是指asp.net web 应用程序中的整体登录、用户活动跟踪、密码重置/检索、角色管理。我想实施有效的方法来实现这一点。

任何建议都将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-membership membership


    【解决方案1】:

    究竟是什么困扰着你?服务器端代码,还是提供给客户端的 HTML?

    如果是前者,那么您可以实现自己的提供程序,或者只是从头开始重新设计整个系统(我不建议这样做,但在某些情况下可能值得)。

    如果是后者,只需编写您自己的一组使用 Membership API 的控件。

    就“效率”而言,您并不清楚“效率”对您意味着什么。

    【讨论】:

    • 安东所说的 - 您还没有具体定义困扰您的问题或它如何影响您的用户对网站的体验。
    • 我同时关心服务器端和 html: 服务器端:每次我使用会员类时,我都会多次访问会员数据库 [如果我是对的],例如通过用户名获取用户,检查用户是否为管理员角色,然后执行一些自定义数据库操作。在解决我自己的自定义数据库操作编码时,这不是强制执行至少三次数据库访问——两次通过成员资格类和一次以上?是的,欢迎您建议使用我自己的控件进行登录、创建使用等。谢谢!
    • 还有两件事:1. 数据库中有超过 5 个用户和角色的表 2. 为相同添加了许多存储过程 有时为成员资格和角色添加的数据库对象是远远超过数据库中的其他表!这不是浪费数据库存储吗?但是,我承认这种特殊情况对于具有少量表和其他对象的数据库来说更为优雅。
    【解决方案2】:

    大多数(全部?)成员控件都支持模板,这意味着您可以自定义它们为客户端生成的标记。

    请参阅本教程以帮助您入门:A Crash Course on ASP.NET Control Development: Template Properties

    至于数据库命中,我认为这不是一个大问题,但如果您担心,我建议对其进行负载测试以确保。此外,如果将 CacheRolesInCookie 设置为 true,则可以消除其中一些数据库调用。

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多