【问题标题】:ASP.NET membership using SQL Server使用 SQL Server 的 ASP.NET 成员资格
【发布时间】:2012-07-03 17:56:56
【问题描述】:

我正在尝试使用 sql server 数据库中的 asp.net 成员身份创建 MVC 3 应用程序。我希望能够使用实体框架在此应用上进行开发。

我已通过数据库创建并使用 aspnet_regsql 实用程序将成员资格表添加到数据库中。我坚持的部分是如何使用我的应用程序连接到这个数据库。

我已向项目中添加了一个实体模型,该模型在 web.config 中生成了一个新的连接字符串,并且我尝试将所有与成员资格相关的条目上的 connectionStringName 属性更改为新字符串,如下所示:

<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="BlogV1Entities" applicationName="/" />

但这不起作用,因为我在尝试通过应用程序或 ASP.NET 配置实用程序创建用户时遇到错误

An error occurred while attempting to initialize a System.Data.SqlClient.SqlConnection object. The value that was provided for the connection string may be wrong, or it may contain an invalid syntax. Parameter name: connectionString

谁能指出我正确的方向以正确进行此设置,以便我的应用可以访问数据库?

编辑:作为对第一条评论的回应,连接字符串如下所示:

 connectionString="metadata=res://*/BlogV1Model.csdl|res://*/BlogV1Model.ssdl|res://*/BlogV1Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=jesse-laptop;initial catalog=BlogV1;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

【问题讨论】:

  • 如果您查看连接字符串“BlogV1Entities”的内容,它是否看起来像一个普通的 SQL Server 连接字符串,或者它是否具有带有 *s 的奇怪属性?如果是这样,它是 DB-first 或 model-first EF(可能是 4)连接字符串。 SqlClient 不使用这些...您可以从实体设计器中提取连接字符串并将其添加为第二个连接字符串,使用它作为一个简单的选项...
  • 我已经在原帖中发布了连接字符串

标签: sql-server asp.net-mvc asp.net-mvc-3 entity-framework membership


【解决方案1】:

实体框架连接字符串在使用 asp.net 成员资格时不起作用。我的项目中没有这样的; 即您需要单独的连接字符串;

您的会员连接字符串;

<add name="DAConnection" connectionString="Data Source=.\sqlexpress;initial catalog=E:\MYWORK\DIGITALASSETSMVC3\DAMVC3\APP_DATA\DAMVC3.MDF;integrated security=True" providerName="Syste.Data.SqlClient" />

你的实体框架连接字符串;

<add name="DAEntities" connectionString="metadata=res://*/Models.DAModel.csdl|res://*/Models.DAModel.ssdl|res://*/Models.DAModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=E:\MYWORK\DIGITALASSETSMVC3\DAMVC3\APP_DATA\DAMVC3.MDF;integrated security=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

【讨论】:

  • 好吧,这是有道理的。这可能是一个愚蠢的问题,但有没有办法从 SQL Server 中获取正确的连接字符串?
  • 是的,在 Visual Studio 服务器资源管理器中添加您的连接。这将为您生成连接字符串。您可以通过右键单击连接字符串并转到属性来查看它
【解决方案2】:

这不是会员资格可以使用的有效连接字符串,它是一种特殊的连接字符串,只能由 EF 使用(因为会员资格期望 AFAIK 的提供名称不同)。

添加一个明确的常规连接字符串并对其进行引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多