如何使用Membership.ValidateUser使用实体连接到DB?

时间:2014-09-17 13:11:48

标签: c# asp.net sql-server

我有一个Web服务调用方法来验证用户

方法是:

public bool getUser(string User, string Pass)
{
    return( Membership.ValidateUser(TvId, TvPass));
}

但是Membership.ValidateUser需要连接到db,我使用Entity框架,有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

这并不意味着您使用实体框架或Ado.net类来与数据库建立连接。成员资格提供者也将使用实体框架。您需要在Web.config文件中定义成员资格连接字符串

答案 1 :(得分:0)

我们定义了两个不同的连接字符串,一个用于EF,一个用于成员资格提供程序,即使它们都是相同的数据库。

所以在Web.config中我们有:

<configuration>
    <connectionStrings>
        <!-- Used by the EF DbContext -->
        <add name="EFConnection" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=MyDB;Persist Security Info=False;Trusted_Connection=yes;MultipleActiveResultSets=true;&quot;" providerName="System.Data.EntityClient" />
        <!-- Used for membership, see the Web.config entries below -->
        <add name="ApplicationServices" connectionString="data source=localhost;initial catalog=MyDB;Persist Security Info=False;Trusted_Connection=yes;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient" />
    </connectionStrings>
    <system.web>
        <membership>
            <providers>
                <!-- Uses the ApplicationServices connection string defined above to set the connection information for the membership provider -->
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="ePubDirect" />
            </providers>
        </membership>
    </system.web>
</configuration>

当然,Web.config中也存在大量其他内容,并且您的连接字符串可能与我的本地开发环境非常不同,但这是您的成员资格工作所需的布线类型。 / p>

您可能需要更多类似的东西,而不是System.Web.Security.SqlMembershipProvider:

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>

或者您正在使用的任何会员提供商。您的详细设置也可能与这些设置不同。