2016-09-29 63 views
5

我試圖在我正在開發的一個新頁面中實現Azure Active Directory B2C,但是當我嘗試從我的頁面登錄時遇到此404 - File or directory not found錯誤。試圖實現Azure Active Directory B2C給了我一個404錯誤

我做了租客,註冊了我的應用程序,制定了我的政策,整個交易。我可以從Azure門戶測試它們,沒有太大問題。不過,我按照official tutorial的指示在我的頁面中實施策略無濟於事,我收到了404錯誤,好像有些東西不見了。
我甚至下載了張貼在那裏的代碼,它的工作原理!

我試着比較這兩個代碼,但無法真正看到區別。不過,我在這裏粘貼我的代碼,希望你能幫我解決這個問題。

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)); 
    } ... 

如果需要其他代碼塊,請告訴我。

真的很帥,任何幫助都會非常感謝。

祝好,託尼奧。

回答

13

我也有同樣的問題。一些可以檢查的事項有:

  • 請確保您webconfig和Azure的AD 政策的名稱是完全相同的,包括正確/小寫

  • 確保該AadInstance有一個結尾斜槓(/)

  • 請確保您有最新版本的owin和microsoft.identitymodel.protocol.extensions庫(建議從的NuGet 重新加載它們)

    • 最後一個問題是我最難發現的問題。如果 瀏覽器中產生的URL包含2個問號,則 這是修復程序。
+0

什麼^他說:) – dstrockis

+3

很抱歉,今天晚些時候回覆。擴展包缺失,在我安裝它並更新WebGrease和Antlr軟件包後,一切都變得順利。謝謝! –

+2

我不得不更新microsoft.identitymodel.protocol.extensions,它解決了我的問題。謝謝! – Bryan

1

如果你正在嘗試使用.auth /我確保你的店鋪在令牌身份驗證設置啓用。否則它會給你一個404。:)

相關問題