2013-09-25 1 views
0

안녕하세요 저는 asp.net mvc 응용 프로그램에 SimpleMembershipProvider를 통합하려고했지만 그걸로 몇 가지 문제가있는 것 같습니다. 이 모든 GET의 호출하기 전에Webmatrix.WebData 로그인 방법의 결과가 예외

public bool Login(string userName, string password, bool rememberMe) 
{ 
     return WebSecurity.Login(userName, password, rememberMe); 
} 

: 이것은 사용자 로그인하기 위해 실행하려고하고있는 코드가

<membership defaultProvider="SimpleMembershipProvider"> 
    <providers> 
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider"/> 
    </providers> 
</membership> 

:

내가 내 Web.config의에있을 것입니다 다음과 같은 속성 코드가 호출되었고 잘 작동합니다.

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] 
public class MembershipInitializerAttribute : ActionFilterAttribute 
{ 

    private const string CONNECTIONSTRING_NAME = "eShopConnectionString"; 
    private const string DATABASE_TABLE_NAME = "Users"; 
    private const string DATABASE_TABLE_IDENTIFIER_COLUMN = "UserId"; 
    private const string DATABASE_TABLE_USER_NAME_COLUMN = "UserName"; 
    private const bool AUTO_CREATE_TABLES = true; 

    public override void OnActionExecuting(HttpActionContext actionContext) 
    { 
     if (!WebSecurity.Initialized) 
     { 
      WebSecurity.InitializeDatabaseConnection(CONNECTIONSTRING_NAME, DATABASE_TABLE_NAME, DATABASE_TABLE_IDENTIFIER_COLUMN, DATABASE_TABLE_USER_NAME_COLUMN, AUTO_CREATE_TABLES); 
     } 
    } 
} 

로그인 메소드는 get

{ "형식을로드 할 수 없습니다 'WebMatrix.WebData.SimpleMembershipProvider': 사용자 이름과 password.After 내가 로그인 액션의이 로그인 방법을 호출하는 실행 얻을 로그인 버튼을 누르면, 마녀는 다음과 같은 예외가 발생합니다. (F : \ Programare \ 프로젝트 IDE \ Visual Studio를 \ 2,012 백엔드 전자 shop.WebApi \ web.config를 라인 73 \ WebApi \ \ 전자 상점 \) "}

enter image description here

내가 한 후 그러나 연구의 많은 사람들이 WebMatrix.WebData Copy Local 속성을 true로 설정하도록 제안했습니다.

내가 그 작업을 수행 한 후에 더 이상 응용 프로그램 시작시에 뭔가 잘못되었다고 생각합니다. 자격 증명이 메시지가있는 화면이 바로 나타납니다.

설명 :이 요청을 처리하는 데 필요한 구성 파일을 처리하는 중 오류가 발생했습니다. 아래의 특정 오류 세부 정보를 검토하고 구성 파일을 적절히 수정하십시오.

파서 오류 메시지 :이 메서드는 응용 프로그램의 사전 시작 초기화 단계에서 호출 할 수 없습니다.

enter image description here

은 내가 잘못 뭘하고 어떻게 그것을 해결할 수 있습니다?

나는이 스택 트레이스를 얻고있다

편집 :

enter image description here

답변

2

귀하의 Web.config의 항목이 올바른 보이지 않는다. 유형의 속성은 입니다. 요소는 쉼표 뒤에 어셈블리 이름을 포함해야합니다. 다음은 web.config 항목의 모양입니다.어셈블리 이름을 가진뿐만 아니라 당신이 이상한 동작이 발생할 수 있습니다 여러 공급자를 등록하지 확인하기 위해 명확 요소를 사용하는 것이 가장 좋습니다 것을

<membership defaultProvider="SimpleMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
    </providers> 
</membership> 

참고.

+0

두 가지를 모두 추가했지만 문제가 여전히 발생합니다. 골동품 문제는 web.config에서 구성을 제거하면 모든 설정이 제대로 작동한다는 것입니다. 아직 구성을 완료해야하는 시점까지는 아직 가지 못했지만 기억합니다. 이전 구성 멤버쉽에서 모든 구성이 올바르게 수행되었습니다. web.config는 SimpleMembershipProvider와 여전히 동일합니까? – aleczandru

+0

SimpleMembershipProvider를 사용할 때 web.config에서 구성 설정을해야합니다. 이 설정을 응용 프로그램 루트의 web.config에 넣고 있습니까? Views 디렉토리에있는 web.config 파일에이 파일을 넣지 마십시오. –