Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 实体框架连接字符串对角色提供程序无效?_Asp.net_Asp.net Mvc_Asp.net Membership - Fatal编程技术网

Asp.net 实体框架连接字符串对角色提供程序无效?

Asp.net 实体框架连接字符串对角色提供程序无效?,asp.net,asp.net-mvc,asp.net-membership,Asp.net,Asp.net Mvc,Asp.net Membership,我一直在努力让角色参与我的MVC4.0项目。我可以使用实体框架连接字符串查询和更新数据库 <add name="DataContext" connectionString="metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl; provider=System.Data.SqlClient;

我一直在努力让角色参与我的MVC4.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" />

是否有一种方法可以动态设置名称,或者我应该寻找另一种方法来实现这一点

角色提供程序需要直接的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>

角色提供程序需要直接的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>


感谢您的快速回复。我试过了,在“无效模式”的某个地方出现了一个错误。我刚刚有工作,但我可以在回家后给你详细信息。如果我有自己的角色表,我可以创建一个自定义角色提供程序来使用实体框架吗?谢谢你的快速回复。我试过了,在“无效模式”的某个地方出现了一个错误。我刚刚有工作,但我可以在回家后给你详细的信息。如果我有自己的角色表,我可以创建一个自定义角色提供程序来使用实体框架吗?