2012-01-03 2 views
2

MVC3 프로젝트에 내 web.config 파일에 사용하도록 지정한 사용자 지정 멤버 자격 공급자가 있습니다.MVC 사용자 지정 멤버 공급자

<system.web> 
<membership defaultProvider="CustomMySQLMembershipProvider"> 
    <providers> 
    <clear /> 
    <add 
     connectionStringName="dbConn" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="true" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="25" 
     minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression="" 
     applicationName="/jp2012" 
     name="CustomMySQLMembershipProvider" 
     type="NameSpace.CustomMySqlMembershipProvider" /> 
    </providers> 
</membership> 
</system.web> 

내가 그것을 기본 멤버 자격 공급자를 대체 할 얻을 내 코드에 뭔가를해야합니까 : 나는 내가과 같이 사용을 지정하고있어 이후 멤버 자격 공급자에 내장 대신에 사용되는 것으로 가정 ? 지금은 이런 식으로 액세스 할 수 있습니다

CustomMySqlMembershipProvider membership = 
    (CustomMySqlMembershipProvider)Membership.Providers["CustomMySQLMembershipProvider"]; 

내가 너무 내 구현 이름을 하드 코딩하지 않는 web.config 파일을 사용하여이 자동적으로 오버라이드 (override) 할 얻을 수있는 방법이 있나요? 다음과 같은 내용이 더 있습니다 :

MembershipProvider membership = new MembershipProvider(); 

아이디어가 있으십니까? 더 많은 정보가 필요하면 알려주세요.

답변

2

실제로 회원 자격 선언 방법에 문제가있었습니다. 라인

type="NameSpace.CustomMySqlMembershipProvider" 

내 사용자 지정 멤버 자격 공급자에 정의 된 어셈블리를 지정하지 않았습니다. 난 지금 내 프로젝트, 선택한 속성을 클릭하고, 현장에서 어셈블리 이름이 Assembly name을 표시 얻었다. 내 어셈블리 이름이 AName 인 경우

그래서,이 라인은

type="NameSpace.CustomMySqlMembershipProvider, AName" 

을 했어야하는 것은 저를 도와 시도하는 당신에게 @Eranga 감사드립니다.

2

귀하의 회원 공급자는 귀하의 경우 기본 제공 업체입니다. 공급자에 추가 기능이없는 경우 공급자를 명시 적으로 캐스팅 할 필요가 없습니다.

예를 들어 Membership.GetUser()으로 전화하면 회원 자격 증명 자의 GetUser(...) 방법으로 전화 할 것입니다.

+0

어떻게 내 Initialize 메서드를 호출 할 수 있습니까? 구현 된 전체 메서드에서 사용되는 변수를 초기화하는 코드가 있습니다. – JesseBuesking

+0

@JesseBuesking 초기화를하려면'Initialize (string name, NameValueCollection config)'를 오버라이드해야합니다. – Eranga

+0

'public override void Initialize (string name, NameValueCollection config)'를 이미 구현했지만 기본적으로 현재 호출되지 않습니다. 어떤 아이디어? – JesseBuesking

관련 문제