2014-10-08 7 views
0

这是我的连接字符串中的当前web.config文件,您将看到两个连接默认和vsmh。我试图删除与SQL Exress默认连接,但随后说我的账户模型,用它来验证身份验证不多大意义:如何更改我的Web配置文件以使用MySQL并完全忽略SQL Express或SQL Server?

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=152368 
    --> 
<configuration> 
    <configSections> 
     <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
     <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
     <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-VanguardApp-20140610090811;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-VanguardApp-20140610090811.mdf" /> 
     <add name="vsmhEntities" connectionString="metadata=res://*/Models.vsmh.csdl|res://*/Models.vsmh.ssdl|res://*/Models.vsmh.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=vanguardpl;database=vsmh&quot;" providerName="System.Data.EntityClient" /></connectionStrings> 
    <system.data> 
     <DbProviderFactories> 
      <clear /> 
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version= 6.5.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
     <remove invariant="MySql.Data.MySqlClient" /><add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /></DbProviderFactories> 
    </system.data> 
    <appSettings> 
     <add key="webpages:Version" value="2.0.0.0" /> 
     <add key="webpages:Enabled" value="false" /> 
     <add key="PreserveLoginUrl" value="true" /> 
     <add key="ClientValidationEnabled" value="true" /> 
     <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
    </appSettings> 
    <system.web> 
     <httpRuntime targetFramework="4.5" /> 
     <compilation targetFramework="4.5"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies> 
      <buildProviders> 
       <add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor" /> 
      </buildProviders> 
     </compilation> 
     <authentication mode="Forms"> 
      <forms loginUrl="~/Account/Logon" timeout="2880" /> 
     </authentication> 
     <pages> 
      <namespaces> 
       <add namespace="System.Web.Helpers" /> 
       <add namespace="System.Web.Mvc" /> 
       <add namespace="System.Web.Mvc.Ajax" /> 
       <add namespace="System.Web.Mvc.Html" /> 
       <add namespace="System.Web.Optimization" /> 
       <add namespace="System.Web.Routing" /> 
       <add namespace="System.Web.WebPages" /> 
      </namespaces> 
     </pages> 
     <profile defaultProvider="DefaultProfileProvider"> 
      <providers> 
       <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
      </providers> 
     </profile> 
     <membership defaultProvider="DefaultMembershipProvider"> 
      <providers> 
       <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.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> 
     <roleManager enabled="true" defaultProvider="DefaultRoleProvider"> 
      <providers> 
       <add connectionStringName="DefaultConnection" applicationName="/" name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
      </providers> 
     </roleManager> 
     <!-- 
         If you are deploying to a cloud environment that has multiple web server instances, 
         you should change session state mode from "InProc" to "Custom". In addition, 
         change the connection string named "DefaultConnection" to connect to an instance 
         of SQL Server (including SQL Azure and SQL Compact) instead of to SQL Server Express. 
      --> 
     <sessionState mode="InProc" customProvider="DefaultSessionProvider"> 
      <providers> 
       <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" /> 
      </providers> 
     </sessionState> 
    </system.web> 
    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <handlers> 
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
     </handlers> 
     <httpProtocol> 
      <customHeaders> 
       <add name="Access-Control-Allow-Origin" value="*" /> 
      </customHeaders> 
     </httpProtocol> 
    </system.webServer> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly> 
       <assemblyIdentity name="Telerik.Windows.Data" publicKeyToken="5803CFA389C90CE7" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-2014.2.729.45" newVersion="2014.2.729.45" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="Telerik.Windows.Controls" publicKeyToken="5803CFA389C90CE7" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-2014.2.729.45" newVersion="2014.2.729.45" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" /> 
       <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> 
       <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 
      </dependentAssembly> 
      <dependentAssembly> 
       <assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" /> 
       <bindingRedirect oldVersion="0.0.0.0-6.7.5.0" newVersion="6.7.5.0" /> 
      </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
    <entityFramework> 
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
</configuration> 
+0

我认为它指的是事实,你的会员资格,角色和个性化配置提供所有使用的SQL表示分贝。 – 2014-10-08 21:31:06

+0

问题是您的默认连接使用SQLClient,这意味着您的应用中的代码使用SQLCLient。你不能只是改变你的配置,并认为它会改变你的所有代码。 – Steve 2014-10-08 21:32:33

回答

1

好像Asp.Net会员者正在使用的SQL Express具有独立的数据库上下文。您需要在DefaultConnection中设置mysql连接字符串,或者更改您的帐户数据库上下文以使用vsmhEntities连接字符串。即使在此之后,您仍然需要确保所有成员资格表都在您的mysql数据库中创建,以便成员资格提供者可以找到它。

您还可以查看下面的链接了解如何使用MySQL的会员数据库:

http://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-asp-roles.html

相关问题