gpt4 book ai didi

asp.net-mvc-4 - SimpleMembershipInitializer 不会初始化

转载 作者:行者123 更新时间:2023-12-02 02:54:48 25 4
gpt4 key购买 nike

我正在努力让一个简单的成员身份场景在我的 EntityFramework/MVC4/DatabaseFirst 项目中工作。我发现了很多先使用代码的示例,但没有找到先使用数据库的示例。

我遇到的问题是 InitializeDatabaseConnection 抛出错误(“无法找到请求的 .Net Framework 数据提供程序。它可能未安装。”)代码如下所示:

WebSecurity.InitializeDatabaseConnection("DALEntities", "tblContacts1", "ContactID", "EMail", autoCreateTables: true);

我不确定 DataProvider 出了什么问题。如果我尝试跟踪“进入”InitializeDatabaseConnection 调用,它会立即引发错误。

我错过了什么?

信息:
DALEntities 是 EF 其余部分使用的连接字符串的名称。下面的代码工作得很好......

    public ActionResult Test() {
using (var db = new DALEntities()) {
var query = from i in db.TBLINVENTORies
orderby i.ITEMNAME
select i;
var cnt = query.Count();
string str = "Total Inventory: " + cnt;
return Content(str);
}
}

web.config 中的我的连接字符串部分:

  <connectionStrings>
<add name="DALEntities" connectionString="metadata=res://*/DAL.DAL.csdl|res://*/DAL.DAL.ssdl|res://*/DAL.DAL.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SOMECOMPUTER;initial catalog=SOMEDB;persist security info=True;user id=SOMEID;password=SOMEPASS;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

这篇文章似乎在问同样的问题(但在模型优先的背景下),但还没有解决方案:Using SimpleMembership with EF model-first

此外,我发现 WebSecurity.InitializeDatabaseConnection() 存在过载。帮助文本:Initializes the membership system ((blah blah <snip> ProviderName: the name of the ADO.NET data provider. If you want to use Microsoft SQL Server, the WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String, String, String, String, Boolean) overload is recommended 。我确实希望连接到 MSSQL 服务器...这是必需的吗?

最佳答案

给您带来麻烦的提供程序是您的连接字符串中指定的提供程序,即 System.Data.EntityClient。我怀疑问题是因为您的项目是数据库优先,而简单成员资格使用代码优先。我认为您不能将这些方法混合在一个数据库中。尝试将其放回用于 IntializeDatabaseConnection 的 DefaultConnection 的位置。 MVC4 脚手架生成的 web.config 中应该有一个 DefaultConnection。此连接字符串通常使用 System.Data.SqlClient 作为提供程序。

如果您想在用于存储域信息的数据库中保留简单的成员身份(即 DALentities),那么您需要将在域上使用 EF 的方法更改为代码优先。如果您想保留您的项目数据库,您需要在数据库中设计您自己的成员资格模式,并且 develop custom member and role providers 。如果您真的想将用户信息集成到域模型中,这可能是最好的方法。

关于asp.net-mvc-4 - SimpleMembershipInitializer 不会初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12902685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com