加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:29:07 所属栏目:asp.Net 来源:网络整理
导读:我正在努力在我的EntityFramework / MVC4 / DatabaseFirst项目中使用简单的成员方案.我已经找到了很多首先使用代码的例子,但是对于DB来说没什么. 我遇到的问题是InitializeDatabaseConnection抛出一个错误(“无法找到所请求的.Net Framework数据提供程序.它
我正在努力在我的EntityFramework / MVC4 / DatabaseFirst项目中使用简单的成员方案.我已经找到了很多首先使用代码的例子,但是对于DB来说没什么.

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

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

我不确定DataProvider失败了什么.如果我尝试跟踪’into’InitializeDatabaseConnection调用,它会立即抛出错误.

我错过了什么?

信息:
DALEntities是EF其余部分使用的connectionString的名称.以下代码工作正常….

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()有一个带有帮助文本的重载:初始化成员资格系统((blah blah< snip> ProviderName:ADO.NET数据提供者的名称.如果你想使用Microsoft建议使用SQL Server,WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String,String,Boolean)重载.我确实希望连接到MSSQL服务器……这是必需的吗?

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读