2016-02-08 146 views
1

我在過去幾天在Azure AD B2C上工作,獲得了一個示例並使其運行。 我正面臨的問題與AAD B2C issue點#3完全相同,但我可以在此問題中獲得任何有價值的意見,這可能會解決我的問題。例如運行罰款與我,但是當我在我的解決方案來實現它,給AAD B2C憑據後我'結束了:Azure AD B2C身份驗證響應挑戰

private async Task OnRedirectToIdentityProvider(RedirectToIdentityProviderNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> notification) 
    { 
     PolicyConfigurationManager mgr = notification.Options.ConfigurationManager as PolicyConfigurationManager; 
     if (notification.ProtocolMessage.RequestType == OpenIdConnectRequestType.LogoutRequest) 
     { 
      OpenIdConnectConfiguration config = await mgr.GetConfigurationByPolicyAsync(CancellationToken.None, notification.OwinContext.Authentication.AuthenticationResponseRevoke.Properties.Dictionary[Startup.PolicyKey]); 
      notification.ProtocolMessage.IssuerAddress = config.EndSessionEndpoint; 
     } 
     else 
     { 
      OpenIdConnectConfiguration config = await mgr.GetConfigurationByPolicyAsync(CancellationToken.None, notification.OwinContext.Authentication.AuthenticationResponseChallenge.Properties.Dictionary[Startup.PolicyKey]); 
      notification.ProtocolMessage.IssuerAddress = config.AuthorizationEndpoint; 
     } 
    } 

在「其他」部分,AuthenticationResponseChallenge始終爲空,這是拋一個錯誤。任何人都可以給我一個詳細的答覆,因爲是什麼導致了這個以及如何解決它?

+0

我有同樣的問題。 ..你找到一個解決方案?下面的答案建議檢查PolicyConfigurationManager.cs,但它是什麼部分以及要查找什麼?我穿過它,它似乎工作。 MS的示例表格也適用於我,但是當對我的項目進行瀏覽時,它不會 – kurasa

回答

0

我有同樣的問題,因爲實際的PolicyKey沒有正確啓動,請確保您有「PolicyAuthHelpers」(由Microsoft提供的修補程序,因爲它們的當前庫無法處理B2C)。把代碼放到PolicyConfigurationManager.cs中,你可能會發現它爲什麼會崩潰。此外,還應確保您有在web.config中配置了正確的政策,例如:

<add key="ida:SignInPolicyId" value="B2C_1_signin" /> 

如果那不幫助你當然可以只硬編碼:

OpenIdConnectConfiguration config = await mgr.GetConfigurationByPolicyAsync(CancellationToken.None, notification.OwinContext.Authentication.AuthenticationResponseChallenge.Properties.Dictionary["b2cpolicy"]); 
相關問題