2017-08-18 1 views
1

Wir implementieren Html.AntiForgeryToken() in unserer authentifizierten AAD-Anwendung. Die Anmeldung funktioniert einwandfrei, aber wenn wir auf eine Schaltfläche auf der Startseite klicken, muss eine Controller-Aktion aufgerufen werden. Es kann Controller-Aktion mit unter Ausnahme nicht aufrufen. Irgendeine Idee, um dieses Problem zu lösen?Fälschungsüberprüfung schlägt bei Verwendung von Azure AD-Authentifizierung fehl

Fehler:

[HttpAntiForgeryException (0x80004005): The provided anti-forgery token was meant for user "[email protected]", but the current user is "".]

html:

using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = Model.ReturnUrl })) { 
      @Html.AntiForgeryToken() 
      <div id="LoginList"> 
       <p> 
        @foreach (AuthenticationDescription p in loginProviders) { 
         <md-button type="submit" class="btn facebook-theme-background" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account">Login with @p.AuthenticationType</md-button> 
        } 
       </p> 
      </div> 
     } 

Server Side: Es ist nicht einmal diese Methode eingeben. Wenn ich ValidateAntiForgeryToken kommentiere, dann tritt es ein.

[HttpPost] 
     [AllowAnonymous] 
     [ValidateAntiForgeryToken] 
     public ActionResult ExternalLogin(string provider, string returnUrl) 
     { 
} 

unter zwei Eigenschaften für die Authentifizierung verwenden:

<add key="Tenant" value="xyz.onmicrosoft.com" /> 
<add key="Audience" value="<guid>" /> 
+0

Willkommen bei Stack Overflow, bitte nehmen Sie sich etwas Zeit für die [Willkommenstour] (https://Stackoverflow.com/tour), um sich hier auskennen (und auch um Ihr erstes Abzeichen zu verdienen), lesen Sie, wie [Erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) und prüfen Sie auch [Wie Sie gute Fragen stellen können] (https://stackoverflow.com/help/how-to-ask), so erhöhen Sie Ihre Chancen, Feedback und nützliche Antworten zu erhalten. – Valentun

Antwort

0

ich dieses Problem zu reproduzieren bin versucht, scheiterte jedoch. Es scheint, dass das Problem relativ zum Code ist. Sie können das Codebeispiel beziehen, das für mich von this link gut funktioniert.

Wenn das Problem weiterhin besteht, können Sie eine lauffähige Demoversion verwenden, um das Problem zu reproduzieren.

Verwandte Themen