2016-09-29 2 views
5

Ich versuche, Azure Active Directory B2C in einer neuen Seite, die ich entwickle, zu implementieren, aber ich bekomme diesen 404 - File or directory not found Fehler versucht, von meiner Seite anzumelden.Der Versuch, Azure Active Directory B2C zu implementieren, gibt mir einen Fehler 404

Ich machte den Mieter, registrierte meine App, erstellte meine Richtlinien, das ganze Geschäft. Ich kann sie ohne Probleme vom Azure-Portal aus testen. Allerdings folgte ich den Anweisungen über die official tutorial, um die Richtlinien in meiner Seite ohne Erfolg zu implementieren, ich bekomme den erwähnten Fehler 404, als ob etwas fehlt.
Ich habe sogar den Code dort heruntergeladen und es funktioniert!

Ich habe versucht, beide Codes zu vergleichen, konnte aber keinen Unterschied sehen. Ich gebe hier meinen Code ein und hoffe, dass du mir dabei helfen kannst.

Web.config

<add key="ida:Tenant" value="PlataformaXXX.onmicrosoft.com" /> 
<add key="ida:ClientId" value="84d2a6e6-4cac-4c53-a5ff-XXXXXXXXXXXX" /> 
<add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}/v2.0/.well-known/openid-configuration?p={1}" /> 
<add key="ida:RedirectUri" value="https://localhost:59744/" /> 
<add key="ida:SignUpPolicyId" value="B2C_1_Sign_Up" /> 
<add key="ida:SignInPolicyId" value="B2C_1_Sign_In" /> 
<add key="ida:UserProfilePolicyId" value="B2C_1_Edit" /> 

STARTUP.AUTH.CS

public partial class Startup 
{ 
    // App config settings 
    private static string clientId = ConfigurationManager.AppSettings["ida:ClientId"]; 
    private static string aadInstance = ConfigurationManager.AppSettings["ida:AadInstance"]; 
    private static string tenant = ConfigurationManager.AppSettings["ida:Tenant"]; 
    private static string redirectUri = ConfigurationManager.AppSettings["ida:RedirectUri"]; 

    // B2C policy identifiers 
    public static string SignUpPolicyId = ConfigurationManager.AppSettings["ida:SignUpPolicyId"]; 
    public static string SignInPolicyId = ConfigurationManager.AppSettings["ida:SignInPolicyId"]; 
    public static string ProfilePolicyId = ConfigurationManager.AppSettings["ida:UserProfilePolicyId"]; 

    public void ConfigureAuth(IAppBuilder app) 
    { 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 

     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     // Configure OpenID Connect middleware for each policy 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignUpPolicyId)); 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(ProfilePolicyId)); 
     app.UseOpenIdConnectAuthentication(CreateOptionsFromPolicy(SignInPolicyId)); 
    } ... 

Wenn ein anderes Stück Code benötigt wird, bitte sagen Sie mir.

Wirklich Leute, jede Hilfe wird sehr geschätzt werden.

Mit freundlichen Grüßen, Toño.

Antwort

13

Ich hatte das gleiche Problem als auch. Einige der Dinge, können Sie überprüfen, sind:

  • Stellen Sie sicher, der Name der Politik in Ihrem webconfig und in Azure AD exakt die gleichen sind, einschließlich der korrekten Groß-/Kleinschreibung

  • Stellen Sie sicher, die AadInstance hat einen Schrägstrich (/)

  • Stellen Sie sicher, dass die neueste Version der owin und microsoft.identitymodel.protocol.extensions Bibliotheken (schlagen sie von NuGet Nachladen)

    • Das letzte ist das Problem, das ich am schwierigsten zu finden hatte. Wenn die resultierende URL in Ihrem Browser 2 Fragezeichen enthält, dann ist dies der Fix.
+0

Was^er sagte :) – dstrockis

+3

Entschuldigen Sie, um so spät zu antworten. Das Erweiterungspaket fehlte und nachdem ich es installiert und die Pakete WebGrease und Antlr aktualisiert hatte, lief alles glatt. Vielen Dank! –

+2

Ich musste Microsoft.identitymodel.protocol.extensions aktualisieren und es behob mein Problem. Vielen Dank! – Bryan

1

Wenn Sie versuchen, verwenden .auth/me sicherstellen, dass Ihr Shop Token in Authentifizierungseinstellungen aktiviert ist. Sonst gibt es dir einen 404. :)

Verwandte Themen