2008-12-05 7 views
6

Beim Starten eines neuen Projekts, das die Verwendung von Mitgliedschaftsanbietern erforderte, konnte ich keine Verbindung mit einer entfernten Datenbank herstellen, die die Mitgliedschaftsdatenbank enthielt.Einrichten des AspNetSqlProvider-Standardservers auf entfernte Datenbank

Ich lief aspnet_regsql und war in der Lage, die Mitgliedschaft Datenbank auf dem Remote-Server zu erstellen, aber wenn ich zu ASPNET-Konfiguration (Cassini-Entwicklungsserver) gehe es keine Verbindung zum Remote-Server.

Antwort

17

Nach vielen Suchen habe ich festgestellt, dass der Standard-Mitgliedschaftsanbieter, der in machine.config (c: \ windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG) angegeben wurde, immer auf einen SQL Server auf dem lokalen Host zeigte.

Statt Modifizierung machine.config gibt es eine Möglichkeit, es zu setzen in den Projekten web.config up:

1) Richten Sie die Verbindungszeichenfolge in die entfernte Datenbank

<connectionStrings> 
     <add name="aspnet_membership" connectionString="<your_connection_string>"/> 
    </connectionStrings> 

2) In <system.web> neu definiert den Standardanbieter:

<membership> 
    <providers> 
     <remove name="AspNetSqlMembershipProvider"/> 
     <add name="AspNetSqlMembershipProvider" 
      type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
      connectionStringName="aspnet_membership" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="true" 
      applicationName="/" 
      requiresUniqueEmail="false" 
      passwordFormat="Hashed" 
      maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="7" 
      minRequiredNonalphanumericCharacters="1" 
      passwordAttemptWindow="10" 
      passwordStrengthRegularExpression=""/> 
    </providers> 
    </membership> 

die <remove name="AspNetSqlMembershipProvider"/> ist der Schlüssel! Alle anderen Schlüssel/Werte wurden genommen direkt von machine.config

+0

Sie jdiaz, sind DER MANN! Ich habe festgestellt, dass dies stundenlang an meiner nicht standardmäßigen SQLExpress-Instanz funktioniert. Funktioniert jetzt großartig. Danke noch einmal! – knslyr

+0

Stolperte heute darüber. Der Befehl '' ist bereits in meinem '' Abschnitt enthalten. Also, ich bin gut? – jp2code

0

Hier ist die Lösung:

Schritt 1: Starten Sie Visual Studio-Eingabeaufforderung Typ: aspnet_regsql dem Server angeben: wenn sqlexpress dann server = Hostname \ sqlexpress * ** * ** * *** * Windows-Authentifizierung verwenden

Schritt 2: Kopieren Sie diese auf dem Web-config.Dont sp ecify Benutzername oder Passwort, weil Ihre Verbindung mit Windows-Authentifizierung, deshalb haben wir die Sicherheit integriert = wahr.

Schritt 3: Sicherheit ändern> Authentifizierungstyp auf Tool Web-Administration zu "Aus dem Internet".

Genießen Sie jetzt.

1

Schritt 2: Kopieren Sie diese:

<remove name="LocalSqlServer"/> 

<add name="LocalSqlServer" connectionString="Data Source=VMK\sqlexpress;Initial Catalog=commodity_exchange;Integrated Security=True" providerName="System.Data.SqlClient"/> 

1
<membership> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlMembershipProvider" 
       type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
       connectionStringName="aspnet_membership" 
       enablePasswordRetrieval="false" 
       enablePasswordReset="true" 
       requiresQuestionAndAnswer="true" 
       applicationName="/" 
       requiresUniqueEmail="false" 
       passwordFormat="Hashed" 
       maxInvalidPasswordAttempts="5" 
       minRequiredPasswordLength="7" 
       minRequiredNonalphanumericCharacters="1" 
       passwordAttemptWindow="10" 
       passwordStrengthRegularExpression=""/> 
     </providers> 
    </membership> 

ich diese Zeilen hinzuzufügen brauchte, um meine Rollen und Profile Personal Membership-Klasse Arbeits Basis zu erhalten:

<profile> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlProfileProvider" 
      connectionStringName="aspnet_membership" 
      applicationName="/" 
      type="System.Web.Profile.SqlProfileProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </profile> 

    <roleManager enabled="true"> 
     <providers> 
      <clear/> 
      <add name="AspNetSqlRoleProvider" 
      connectionStringName="aspnet_membership" 
      applicationName="/" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
      <add name="AspNetWindowsTokenRoleProvider" 
      applicationName="/" 
      type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
     </providers> 
    </roleManager> 
Verwandte Themen