2013-07-24 2 views
1

Websecurity없이 db 연결을 테스트했으며 작동합니다. 나는 브라이스 램슨 http://brice-lambson.blogspot.com.es/2012/10/entity-framework-on-postgresql.htmlPostgreSQL + Npgsql 커넥터 + MVC 및 SimpleMembership 작동하지 않습니다.

에서 튜토리얼을 따라하지만 한 내가

WebSecurity.InitializeDatabaseConnection ("myContext" "사용자 프로필", "사용자 아이디", "사용자 이름", autoCreateTables : 거짓)를 사용하는 경우;

System.InvalidOperationException was caught 
    HResult=-2146233079 
    Message=No user table found that has the name "UserProfile". 
    Source=WebMatrix.WebData 
    StackTrace: 
     in WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable() 
     in WebMatrix.WebData.WebSecurity.InitializeMembershipProvider(SimpleMembershipProvider simpleMembership, DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean createTables) 
     in WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) 
     in WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) 
     in Glink.Filters.InitializeSimpleMembershipAttribute.SimpleMembershipInitializer..ctor() en c:\Users\...\InitializeSimpleMembershipAttribute.cs:line 46 
    InnerException: Npgsql.NpgsqlException 
     HResult=-2147467259 
     Message=ERROR: 42601: Syntax error near «[» 
     Source=Npgsql 
     ErrorCode=-2147467259 
     BaseMessage=Syntax error near «[» 
     Code=42601 
     Detail="" 
     ErrorSql=SELECT [UserId] FROM [UserProfile] WHERE (UPPER([UserName]) = ((E'Z'))) 
     File=src\backend\parser\scan.l 
     Hint="" 
     Line=1002 
     Position=8 
     Routine=scanner_yyerror 
     Severity=ERROR 
     Where="" 
     StackTrace: 
      in Npgsql.NpgsqlState.<ProcessBackendResponses_Ver_3>d__a.MoveNext() 
      in Npgsql.ForwardsOnlyDataReader.GetNextResponseObject() 
      in Npgsql.ForwardsOnlyDataReader.GetNextRowDescription() 
      in Npgsql.ForwardsOnlyDataReader.NextResult() 
      in Npgsql.ForwardsOnlyDataReader..ctor(IEnumerable`1 dataEnumeration, CommandBehavior behavior, NpgsqlCommand command, NotificationThreadBlock threadBlock, Boolean synchOnReadError) 
      in Npgsql.NpgsqlCommand.GetReader(CommandBehavior cb) 
      in Npgsql.NpgsqlCommand.ExecuteScalar() 
      in WebMatrix.Data.Database.QueryValue(String commandText, Object[] args) 
      in WebMatrix.WebData.DatabaseWrapper.QueryValue(String commandText, Object[] parameters) 
      in WebMatrix.WebData.SimpleMembershipProvider.GetUserId(IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String userName) 
      in WebMatrix.WebData.SimpleMembershipProvider.ValidateUserTable() 
     InnerException: 

내가 NpgSql이 SimpleMerbership 작업을 준비 할 수 없다고 생각하지만, 나는 당신의 모든이를 시도했다 있는지 알고 싶습니다

나는이 예외를 얻을. 감사합니다!

답변

2

당신은 다니엘 Nauck의 AspSQLProvider을 시도해야합니다 : http://dev.nauck-it.de/projects/show/aspsqlprovider

IT는 ASP.NET 2.0 회원, 역할, 프로필 및 세션 상태 저장소 공급자의 PostgreSQL의 구현입니다.

도움이되기를 바랍니다.

1

"autoCreateTables : false"를 "autoCreateTables : true"로 변경하는 것이 좋습니다.

가 포함 된 SQL을 통해에 괄호 ([...]) 주입하기 때문에