【问题标题】:Entity Framework Connection String Not Valid For Role Provider?实体框架连接字符串对角色提供者无效?
【发布时间】:2013-03-10 20:42:09
【问题描述】:

我一直在尝试让角色参与我的 MVC 4.0 项目。我可以使用我的实体框架连接字符串查询和更新我的数据库。

<add name="DataContext" 
     connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;
                       provider=System.Data.SqlClient;
                       provider connection string='data source=.\SQLEXPRESS;
                       initial catalog=Phase 2;
                       integrated security=True;
                       multipleactiveresultsets=True;
                       application name=EntityFramework'" 
     providerName="System.Data.EntityClient" />

这非常有效。问题是当我尝试设置我的角色管理器时,它告诉我我的连接字符串无效

<roleManager enabled="true">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" 
         type="System.Web.Security.SqlRoleProvider" 
         connectionStringName="DataContext" 
         applicationName="/" />
  </providers>
</roleManager>

这会引发错误并告诉我我的连接字符串错误。经过显然研究后,我必须为我的提供商使用单独的连接字符串。我不知道如何将两个连接字符串指向相同的上下文。

这就是我目前的 Context 命名方式。

public DataContext()
        : base("name=DataContext")
        {
        }

有没有办法动态设置名称,或者我应该寻找另一种方法来做到这一点。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-membership


    【解决方案1】:

    角色提供者需要有一个直接、直接的 ADO.NET 连接字符串 - 而不是 EF 连接字符串; ADO.NET 成员资格和角色提供程序系统不使用实体框架来访问其表。

    所以使用这样的东西:

    <connectionStrings>
       <add name="RoleProviderConnection" 
            connectionString="data source=.\SQLEXPRESS;initial catalog=Phase 2;integrated security=True;"
            providerName="System.Data.SqlClient" />
    

    并为您的成员资格和角色提供者使用直接的 ADO.NET 连接字符串:

    <roleManager enabled="true">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" 
             type="System.Web.Security.SqlRoleProvider" 
             connectionStringName="RoleProviderConnection" 
             applicationName="/" />
      </providers>
    </roleManager>
    

    【讨论】:

    • 感谢您的快速回复。我已经尝试过了,但在“无效模式”的某处出现错误。我刚下班,但我可以在回家后告诉你具体情况。
    • 如果我有自己的角色表,是否可以创建自定义角色提供程序来使用实体框架?
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多