0

我正在使用ASP.NET成員資格提供程序。我正在使用SqlMembership Provider,我已經覆蓋了CreateUser類,如下所示。傳遞值以覆蓋MVC中SqlMemebership Provider的CreateUser方法

正如你所看到的,我有一個包含許多值的SportDetails字段,這個我想在CreateUser方法中使用。我如何傳遞這些值?因爲這些值取自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; } 

} 

,然後在我的定義提供我有這個接口實現爲

public class CustomMembershipProvider : SqlMembershipProvider, ISportsDetailer 
{} 

,並呼籲CREATEUSER和之前它傳遞這些價值,我用

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

希望這有助於一些一個在未來:)