【问题标题】:Create user in another Membership.ApplicationName在另一个 Membership.ApplicationName 中创建用户
【发布时间】:2010-12-06 16:44:57
【问题描述】:

我有一个管理网站 - 其用户应该能够修改公共网站的用户。这意味着管理站点有一个有效的成员资格提供程序,但我希望能够访问/更改另一个站点中的成员(因此也是 ApplicationName)。

首先想到的是在 Membership 静态上设置 ApplicationName - 但根据这里的答案,这似乎是个坏主意:Changing Membership.ApplicationName in code - thread safety

第二个想法是将 MembershipProvider 条目复制到 web.config - 所以现在我可以做 WebSiteMembershipProvider = Membership.Providers("WebsiteSqlMembershipProvider") - 但我现在似乎无法获得一个“会员”对象,它将让我(例如)调用标准的“CreateUser”方法。

我尝试了 WebSiteMembershipProvider.CreateUser - 但它需要加载更多参数,并且如果我将一些值插入其中似乎没有任何作用。

我快到了吗?还是我需要不同的方法?总有SqlProvider的存储过程,我想……

【问题讨论】:

  • 问题是您不能将空字符串用于密码问题和答案 - 使用 null 可以正常工作。

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


【解决方案1】:

我用过这样的东西:

var _provider = Membership.Providers["WebsiteSqlMembershipProvider"];
_provider.CreateUser(userName, password, email, null, null, true, null, out status);

HTH。

【讨论】:

  • 和@Greg - 很高兴看到我的方法是正确的 - 问题似乎只是有一个空字符串检查密码问题和答案。 "" 不起作用,但 null 起作用。我会接受这个答案,因为它是第一个。在我问之前我应该​​多做一些实验,真的!
  • 很高兴知道null 工作,当时有同样的问题。您可以查看默认 MVC 模板中的授权是如何实现的,以获取有关如何处理错误的一些想法,并使用status 变量向用户提供反馈,以防万一发生某些事情(即密码不符合最小值)提供程序配置中定义的长度或正则表达式规则)。
【解决方案2】:

但它需要加载更多参数

传入空值

MembershipCreateStatus status; 
MembershipUser u = CreateUser(username, password, email,null,null,true, out status);

如果我似乎什么也没做 在其中插入一些值。

应该的。你能发布相关的 web.config 部分吗?

【讨论】:

    猜你喜欢
    • 2016-12-15
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多