【问题标题】:Pass values to overriden CreateUser method of SqlMemebership Provider in MVC传递值以覆盖 MVC 中 Sql Membership Provider 的 CreateUser 方法
【发布时间】:2012-09-07 05:12:33
【问题描述】:

我正在与 ASP.NET 成员资格提供商合作。我正在使用 SqlMembership Provider,我已经覆盖了 CreateUser 类,如下所示。

如您所见,我有一个包含许多值的 SportDetails 字段,我想在 CreateUser 方法中使用它。我如何传递这些值?因为这些值取自 ViewModel。 Infact SportDetails 是我注册页面的视图模型。

public class CustomMembershipProvider : SqlMembershipProvider
{
    public SportsDetails SportsDetails { get; set; }

    public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
    {
        string.empty
        MembershipUser membershipUser = base.CreateUser(username, password, "", null,null, false, null, out status);

        // here is where I want to be able to use the value from Sports Details.

        return membershipUser;
    }
}

还有我的 web.config

<membership defaultProvider="CustomMembershipProvider">
<providers>
    <clear/>        
    <add name="CustomMembershipProvider" type="Service.Security.CustomMembershipProvider" connectionStringName="my_db" requiresQuestionAndAnswer="false" enablePasswordRetrieval="false" enablePasswordReset="true" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3" minRequiredNonalphanumericCharacters="0" passwordFormat="Clear" passwordAttemptWindow="10" applicationName="myApp" />
</providers>
</membership>

请帮帮我。

【问题讨论】:

    标签: asp.net-mvc-3 asp.net-membership overriding sqlmembershipprovider


    【解决方案1】:

    很难找到答案;)

    我为此使用了接口。

    下面是我使用的界面。

    public interface ISportsDetailer{
    
    public SportDetails SportsDetails { get; set; }
    
    }
    

    然后在我的自定义提供程序中,我将此接口实现为

    public class CustomMembershipProvider : SqlMembershipProvider, ISportsDetailer
    {}
    

    并调用 CreateUser 并在它之前传递这些值,我使用了

    ((ISportsDetailer)Membership.Provider).SportsDetails = valueFromModel;
    

    希望这对将来的某些人有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2011-03-08
      • 2014-08-27
      • 2010-12-30
      相关资源
      最近更新 更多