0

ASP.NET 멤버십 공급자와 협력하고 있습니다. SqlMembership Provider를 사용하고 있습니다. CreateUser 클래스를 아래와 같이 재정의했습니다.MVC의 SqlMemebership Provider의 CreateUser 메서드를 재정의 할 값 전달

위에서 볼 수 있듯이 CreateUser 메서드에서 사용하려는 많은 값을 포함하는 SportDetails 필드가 있습니다. 이 값들은 어떻게 전달합니까? 이 값은 ViewModel에서 가져온 값이기 때문입니다. Infact SportDetails는 내 viewModel 등록 페이지입니다.

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> 

이에 저를 도와주세요.

답변

1

답답한 답변 찾기 :

인터페이스를 사용했습니다.

아래의 인터페이스가 사용되었습니다. 이 약간의 도움이

public interface ISportsDetailer{ 

public SportDetails SportsDetails { get; set; } 

} 

다음 내 사용자 지정 공급자에 나는이 인터페이스는 createUser를 호출하고 그 전에이 값을 전달

public class CustomMembershipProvider : SqlMembershipProvider, ISportsDetailer 
{} 

로하고 구현했다, 나는

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

희망을 사용 미래에 하나 :