asp.net / MySQL: Zugriff für Benutzer '' @ 'localhost' verweigert (mit Passwort: NEIN)

Ich bin ein Neuling im Bereich Web-Entwicklung und hoffe, dass jemand mit mehr Erfahrung dazu beitragen kann, dies zu klären. Ich wurde von einem MySQL-Upgrade überfallen.

Hintergrund: Ich habe zwei XP-PCs (nennen wir sie ehrgeizig "Webserver" und "MySQL-Server"). Ich habe kürzlich eine asp.net-Site erstellt und erfolgreich gehostet, die Daten aus der MySQL-Datenbank bezieht. Es ist nur eine Seite, die für ein paar lokale Benutzer konzipiert wurde, damit sie nicht SQL lernen müssen, um Daten zu erhalten ... nichts Besonderes. So weit, ist es gut.

Problem: Diese Woche habe ich MySQL auf dem "Webserver" installiert, und da wurde es verrückt. Vor diesem Zeitpunkt gab es keine Instanz von MySQL auf dem Webserver. Seit der Installation habe ich:

... den MySQL .NET Provider neu installiert... die Datei machine.config neu konfiguriert... die MySQL_Web.dll in das MySQL-Verzeichnis bin kopiert... hat versucht, das Setup an den Anweisungen auf der folgenden Website auszurichten.

http://dev.mysql.com/doc/refman/5.0/de/connector-net-tutorials-asp-roles.html

Dies behebt eine Reihe von Problemen, und ich habe die Website teilweise wieder in Betrieb genommen. Ich kann auf die Zielseite zugreifen und Anfragen an Gastbenutzer senden Daten in Ordnung zurück.

Fehlermeldung # 1 Wenn der Benutzer jedoch versucht, sich anzumelden, um auf private Seiten der Site zuzugreifen, wird der Fehler angezeigt"Zugriff verweigert für Benutzer '' @ 'localhost' (mit Passwort: NEIN)". Dies ist eindeutig falsch, da ich ein Kennwort verwende und keine Verbindungszeichenfolge zum lokalen Host / Webserver vorhanden ist. Die einzige Verbindungszeichenfolge verweist auf den MySQL-Server, auf dem sich die Datenbank befindet.

Fehlermeldung # 2 Außerdem wird auf der Registerkarte "Sicherheit" das Website-Verwaltungstool von asp.net angezeigt und der folgende Fehler angezeigt:

"Es liegt ein Problem mit Ihrem ausgewählten Datenspeicher vor. Dies kann durch einen ungültigen Servernamen oder ungültige Anmeldeinformationen oder durch unzureichende Berechtigungen verursacht werden. Dies kann auch dadurch verursacht werden, dass die Rollenmanagerfunktion nicht aktiviert ist. Klicken Sie auf die Schaltfläche unten, um zu einer Seite weitergeleitet zu werden, auf der Sie einen neuen Datenspeicher auswählen können. Die folgende Meldung kann bei der Diagnose des Problems hilfreich sein: Eine Ausnahme ist aufgetreten. Bitte überprüfen Sie das Ereignisprotokoll."

Der Rollenmanager ist definitiv aktiviert und die Anbieter sind korrekt eingerichtet.

Ich habe versucht, MySQL auf dem Webserver zu deinstallieren, die Benutzertabellen der Site neu zu erstellen, Berechtigungen zu löschen und einige andere Tricks auszuführen, aber die Site scheint jetzt die Datenbank in der Verbindungszeichenfolge während des Anmeldevorgangs und der Suche auf dem Webserver dauerhaft zu umgehen stattdessen.

Hat jemand eine Idee, wo ich das als nächstes hinbringen kann? Ich bin seit ein paar Tagen ratlos und weiß nicht, was ich sonst noch tun kann.

Bearbeiten: Geben Sie den entsprechenden Code an, wie in den Kommentaren unten angegeben. Wie bereits erwähnt, handelt es sich hierbei um Standardcode, der als Teil eines Standardprojekts generiert und in keiner Weise bearbeitet wurde (mit Ausnahme von web.config natürlich).

Web.config

<connectionStrings>
   <remove name="MySQLWebConnection"/>
   <add name="MySQLWebConnection" connectionString="server=myWebServer;User Id=myName;password=myPwd;database=myDB" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>


<system.web>
   <membership defaultProvider="MySQLMembershipProvider" />
   <roleManager enabled="true" defaultProvider="MySQLRoleProvider" />
   <authentication mode="Forms">
    <forms name=".ASPXFORMSAUTH" loginUrl="~/Account/Login.aspx" defaultUrl="~/Default.aspx" />
   </authentication>
   ...
</system.web>

Login.aspx

   <asp:Login ID="LoginUser" runat="server" EnableViewState="false" RenderOuterTable="false">
        <LayoutTemplate>
            <span class="failureNotification">
                <asp:Literal ID="FailureText" runat="server"></asp:Literal>
            </span>
            <asp:ValidationSummary ID="LoginUserValidationSummary" runat="server" CssClass="failureNotification" 
                 ValidationGroup="LoginUserValidationGroup"/>
            <div class="accountInfo">
                <fieldset class="login">
                    <legend>Account Information</legend>
                    <p>
                        <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username:</asp:Label>
                        <asp:TextBox ID="UserName" runat="server" CssClass="textEntry"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" 
                             CssClass="failureNotification" ErrorMessage="User Name is required." ToolTip="User Name is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                    </p>
                    <p>
                        <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                        <asp:TextBox ID="Password" runat="server" CssClass="passwordEntry" TextMode="Password"></asp:TextBox>
                        <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" 
                             CssClass="failureNotification" ErrorMessage="Password is required." ToolTip="Password is required." 
                             ValidationGroup="LoginUserValidationGroup">*</asp:RequiredFieldValidator>
                    </p>
                    <p>
                        <asp:CheckBox ID="RememberMe" runat="server" Visible="false" />
                        <asp:Label ID="RememberMeLabel" runat="server" Visible="false" AssociatedControlID="RememberMe" CssClass="inline">Keep me logged in</asp:Label>
                    </p>
                </fieldset>
                <p class="submitButton">
                    <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" ValidationGroup="LoginUserValidationGroup"/>
                </p>
            </div>
        </LayoutTemplate>
    </asp:Login>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage