【问题标题】:Membership Provider users in different tables不同表中的成员资格提供者用户
【发布时间】:2010-03-07 22:52:25
【问题描述】:

我有一个现有数据库,其中用户和管理员位于不同的表中。 我正在重写 ASP.net 中的现有网站,需要决定 - 我应该将这两个表合并到一个用户表中并且只有一个提供者,还是将这些表分开并有两个不同的提供者。

管理员,他们需要创建、编辑和删除用户的能力。我认为编辑用户的会员/个人资料提供者方式(即

System.Web.Profile.ProfileBase pro = System.Web.Profile.ProfileBase.Create("User1");
pro.Initialize("User1", true);
txtEmail.Text = pro["SecondaryEmail"].ToString();

是编辑用户的最佳方式,因为提供商会处理它吗?如果您有两个单独的提供程序,您不能使用它吗? (因为他们都在看不同的表格)。

或者我应该做很多方法来为管理员编辑用户?

更新:
让自定义成员资格提供程序查看两个表很好,但是配置文件提供程序呢?配置文件提供程序 GetPropertyValues 和 SetPropertyValues 将为用户和管理员使用同一组属性。

【问题讨论】:

    标签: c# asp.net-membership


    【解决方案1】:

    您可能应该将两个表合并为一个并使用RoleProvider 来区分管理员和“普通”用户。

    或者,您可以实现自己的自定义membership provider,这将使用两个表。

    【讨论】:

    • 我目前正在使用自定义会员服务提供商。从一个角度来看,管理员不是用户,他们与用户几乎没有相似之处(没有属性),但他们想像用户一样登录并编辑用户。
    • @Mike - '管理员不是用户','他们只想像用户一样登录并编辑用户' - ?!?! - 我必须告诉你,这是一个非常不寻常的观点,并且可能表明未来的设计危机即将到来...... ;-)
    【解决方案2】:

    迈克, 我的建议是继续合并您的两个“成员”表,并将管理员与非角色隔离开来。

    (这是,我知道上一个答案的重复,但我觉得有必要解释一下..)

    通过这种方式,除非您有一些令人信服的理由来实施自定义提供程序,否则您将能够利用股票提供程序和数据库结构为您的网站提供强大的用户管理故事,而无需编写任何代码(您必须测试和维护)。

    .2 比索....

    【讨论】:

    • 我使用自定义提供程序的主要原因是我已经有一个现有的数据库,以及我必须使用的现有模式。由于这个原因,我不能使用默认的股票提供商。
    • @Mike,那么你的工作已经完成了。 ;0) 祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2020-06-29
    • 2011-05-24
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多