需要另一个连接字符串来使用简单的成员资格

时间:2013-07-25 01:32:32

标签: asp.net-mvc-4 connection-string sqlconnection simplemembership

我是ASP.net MVC的新手。 在我的MVC应用程序中,我想要具有默认登录功能。  对于我的实体框架与应用程序的连接,我已经有这样的连接字符串,

<add name="TestDB2Entities" connectionString="metadata=res://*/EntittyModel.SchoolDBModel.csdl|res://*/EntittyModel.SchoolDBModel.ssdl|res://*/EntittyModel.SchoolDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=PRAGEETH-PC;initial catalog=TestDB2;user id=sa;password=sa123;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

使用该连接字符串我尝试使用默认预先实现的登录功能的可用功能。我无法使用它并向我显示以下错误。

  

“无法找到请求的.Net Framework数据提供程序。有可能   没有安装。“

然后我尝试创建一个新的连接字符串,如下所示,然后它工作正常,

<add name="TestDB2Entities1"    connectionString="data source=PRAGEETH-PC;initial catalog=TestDB2;uid=sa;pwd=sa123;integrated security=sspi" providerName="System.Data.SqlClient" />

但是我只需要一个连接字符串来适应这两种情况。是否可以有一个连接字符串而不是两个连接字符串?或者我的应用程序中有多个连接字符串可以吗?

1 个答案:

答案 0 :(得分:0)

Prageeth,

假设您的意思是Visual Sutdio 2012中MVC 4 Internet应用程序模板的默认实现,那么您可以(并且应该)拥有单个连接字符串。在模板中,唯一一个最初位于InitializeSimpleMembershipAttribute,但您需要添加更多(请参阅脚注)

您需要做的就是将UsersContext类中的连接字符串名称设置为您自己的名称。在InitializeSimpleMembershipAttribute班级以及对WebSecurity.InitializeDatabaseConnection

的任何调用中执行相同的操作

如果您使用的是代码优先(顺便提一下,这是您第一次使用SimpleMembership时最简单的方法),您还可以:

  • UserProfileUsersContext移至您自己的上下文中,然后删除UsersContext
  • UsersContextAccountControllerInitializeSimpleMembershipAttribute的引用更改为您自己的背景

脚注

有关SimpleMembership是什么以及如何运作的详细信息,请参阅我对问题How do I use my own database with SimpleMembership and WebSecurity? What is MVC4 security all about?的回答,以及使用InitializeSimpleMembership的最简单方法,请参阅我对this question的回答