ASP.NET-Webformulare und gemeinsame Nutzung der MVC-Authentifizierung über das Cookie

Es scheint Teile der Antworten auf mein Problem zu geben, die sich auf mehrere Posts verteilen, aber das Zusammenstellen hat bisher bei mir nicht funktioniert. Ich hoffe, dass dieser Post nach Beantwortung einen vollständigeren Leitfaden ergibt.

Das Proble

Ich besitze eine ASP.NET-Webforms-Anwendung (W1) und möchte über einen bestimmten Zeitraum ein Upgrade auf eine separate MVC-Anwendung (M1) durchführen. Die Lösung mit W1 wurde auf 4.5 aktualisiert und M1 wurde in der Lösung erstellt. W1 verwendet das ASP.Net-Mitgliedschafts-Framework.

Der Testfall

n M1 habe ich das Authorize-Attribut zur About-Seite im HomeController hinzugefüg

[Authorize] public ActionResult About()

Ich habe einen Link zur About-Seite in M1 hinzugefügt, der von einer Seite in W1 stammt, für die der Benutzer angemeldet sein muss.

Die Erwartun

Ich erwarte, dass sich ein Benutzer bei W1 anmelden kann, auf den Link zur Info-Seite von M1 klickt und automatisch bei M1 angemeldet wird.

Die KonfigurationSchritt

Ich habe den validationKey und den decryptionKey aus W1 mit der beschriebenen Methode extrahiertHie. Obwohl dies ein logischer Schritt zu sein scheint, bin ich mir nicht sicher, ob er erforderlich ist, da ein Benutzer sich mit unterschiedlichen Schlüsseln immer noch bei W1 anmelden kann.

Schritt

Folgen Sie den InformationenHie undHie, und nach umfangreichem Debugging habe ich Abschnitte der Web.config-Dateien für die Projekte wie folgt geändert:

Für W1:

<system.web>  
    <authentication mode="Forms">
          <forms name="WRSAUTH"
                 loginUrl="~/Account/Login.aspx"
                 defaultUrl="Default.aspx"
                 protection="All"
                 timeout="60"
                 path="/"
                 domain=".localhost"
                 requireSSL="false"
                 slidingExpiration="true"
                 cookieless="UseCookies"
                 enableCrossAppRedirects="false" />
        </authentication>
        <machineKey validationKey="<ValidationKey>"
                    decryptionKey="<DecryptionKey>"
                    validation="SHA1"
                    decryption="AES"/>
<compilation debug="true" targetFramework="4.5">
     <httpRuntime maxRequestLength="12288" />
</system.web>

Form 1

  <system.web>
    <authentication mode="Forms">
      <forms name="WRSAUTH" 
             loginUrl="~/Account/Login" 
             defaultUrl="~/" 
             protection="All" 
             timeout="60" 
             path="/" 
             domain=".localhost" 
             requireSSL="false"           
             slidingExpiration="true"
             cookieless="UseCookies" 
             enableCrossAppRedirects="false"/>
    </authentication>
    <machineKey validationKey="<ValidationKey>" 
                decryptionKey="<DecryptionKey>" 
                validation="SHA1" 
                decryption="AES"/>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.webServer>
    <modules>
      <!--<remove name="FormsAuthentication"/>-->
    </modules>
  </system.webServer>
Aktueller Statu

Wenn Sie auf den Link in W1 klicken, der auf die Seite mit dem M1-Inhalt abzielt, ist der Benutzer nicht berechtigt und der Anmeldebildschirm wird angezeigt.

Fehlt in der Konfiguration etwas?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage