【问题标题】:C# asp.net custom MembershipUser.createUser() method, call it from createuserwizard controlC# asp.net 自定义 MembershipUser.createUser() 方法,从 createuserwizard 控件调用
【发布时间】:2009-01-28 15:50:28
【问题描述】:

我创建了自定义 MembershipUser、MembershipProvider 和 RolePrivoder 类。除了一件事之外,这些都有效,我对此感到非常满意。我在“用户”表中有一个额外的字段。我有一个 CreateUser() 的重写方法,它接受额外的变量并将其放入数据库中。

我的问题是我希望能够从创建用户向导控件中调用它。我已经自定义了控件,以便有一个下拉列表来填充我的额外字段。我已经使用以下代码来存储该信息,但我不知道如何使用配置文件或调用我的自定义 CreateUser 方法:

 // Create an empty Profile for the newly created user     
 ProfileCommon p = (ProfileCommon)ProfileCommon.Create(CreateUserWizard1.UserName, true);

 // Populate some Profile properties off of the create user wizard
 p.CurrentLevel = Int32.Parse(((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("clevel")).SelectedValue);

 // Save profile - must be done since we explicitly created it
 p.Save(); 

感谢大家的帮助

乔恩·霍金斯

【问题讨论】:

    标签: c# createuserwizard membershipuser


    【解决方案1】:

    我认为您的解决方案是您将获得的“最简单”的解决方案。您可以创建自己的向导并调用正确的方法,但这需要更多的工作。

    我唯一可以推荐的是使用OnCreatedUser 事件。

    参考:4guysfromrolla

    【讨论】:

    • +1 - 处理 Deactivate 事件听起来像是一个非常老套的解决方法。我不确定该事件到底是做什么的,因为我不确定它来自哪个类,但规范地说,这是一个 UI 功能,你应该将你的后处理基于会员提供者的行为而不是
    【解决方案2】:

    这不是答案,但我找到了解决方法,仍然想知道是否有人可以直接回答这个问题...

    public void UpdateCurrentLvl_OnDeactivate(object sender, EventArgs e)
    {
        int level = Int32.Parse(((DropDownList)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("clevel")).SelectedValue);
        MyMembershipUser myUser = (MyMembershipUser)Membership.GetUser(CreateUserWizard1.UserName);
        myUser.CurrentLVL = level;
        Membership.UpdateUser(myUser);
    }
    

    在我的第一个 CreateUserWizardStep 中,如果将上面的方法放在停用时触发。至此它已将用户插入数据库中,我可以将用户取出,转换为我的 MembershipUser 类,设置变量和所有更新方法。

    正如我所说,这是我希望解决的方法,但它确实有效。

    谢谢

    【讨论】:

      【解决方案3】:

      这也令人难以置信,但在过去,当我不得不做类似的事情时,我只是将额外的值塞进一个未使用的参数中,比如密码重置问题或答案。不过,我不完全确定您将如何使用向导来管理它。

      它很难看,但只要它被明确记录(为了安全起见,我会对方法本身以及您引用它的任何地方发表评论)它就可以正常工作。

      这也比创建自己的向导少很多工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-23
        • 2011-03-01
        • 1970-01-01
        • 2011-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多