PostgreSQL + Npgsql连接器+ MVC和SimpleMembership不起作用 [英] PostgreSQL + Npgsql connector + MVC and SimpleMembership Not working

查看:143
本文介绍了PostgreSQL + Npgsql连接器+ MVC和SimpleMembership不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在没有网络安全性的情况下测试了数据库连接,并且可以正常工作。我已经阅读了Brice Lambson的教程 http: //brice-lambson.blogspot.com.es/2012/10/entity-framework-on-postgresql.html

I've test the db connection without Websecurity and it works. I've followed the tutorial from Brice Lambson http://brice-lambson.blogspot.com.es/2012/10/entity-framework-on-postgresql.html

但是当我使用


WebSecurity.InitializeDatabaseConnection( myContext,
UserProfile, UserId, UserName,autoCreateTables:false);

WebSecurity.InitializeDatabaseConnection("myContext", "UserProfile", "UserId", "UserName", autoCreateTables: false);

我遇到此异常:

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一起使用,但是我想知道你们中是否有人尝试过这种方法。
谢谢!

I guess that NpgSql could not be prepared to work with SimpleMerbership, but I'd like to know if any of you had tried this. Thank you!!

推荐答案

您应该尝试Daniel Nauck的AspSQLProvider: http://dev.nauck-it.de/projects/show/aspsqlprovider

You should try Daniel Nauck's AspSQLProvider: http://dev.nauck-it.de/projects/show/aspsqlprovider

它是ASP.NET 2.0+成员资格,角色,配置文件和会话状态存储提供程序的PostgreSQL实现。

It is a PostgreSQL implementation of the ASP.NET 2.0+ Membership, Role, Profile and Session-State Store Provider.

我希望对您有所帮助。

这篇关于PostgreSQL + Npgsql连接器+ MVC和SimpleMembership不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆