尝试实现Azure Active Directory B2C给出了404错误

Toñ*_*rez 6 azure http-status-code-404 azure-ad-b2c

我正在尝试在我正在开发的新页面中实现Azure Active Directory B2C,但是我404 - File or directory not found尝试从我的页面登录时遇到此错误.

我做了房客,注册了我的应用程序,创建了我的政策,整个交易.我可以从Azure门户测试它们没有太多问题.但是,我按照官方教程中的指示来实现我页面中的策略无济于事,我得到了提到的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" />
Run Code Online (Sandbox Code Playgroud)

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));
    } ...
Run Code Online (Sandbox Code Playgroud)

如果需要任何其他代码,请告诉我.

真的很棒,任何帮助都会非常感激.

此致,Toño.

小智 14

我也有同样的问题.您可以检查的一些事项是:

  • 确保webconfig和Azure AD中的策略名称完全相同,包括正确的大写/小写

  • 确保AadInstance有一个斜杠(/)

  • 确保您拥有最新版本的owin和microsoft.identitymodel.protocol.extensions库(建议从NuGet重新加载它们)

    • 最后一个问题是我最难找到的问题.如果浏览器中的结果URL包含2个问号,那么这就是修复.

  • 很抱歉这么晚回复.Extensions包丢失了,在我安装它并更新了WebGrease和Antlr软件包后,一切顺利.谢谢! (3认同)
  • 我不得不更新microsoft.identitymodel.protocol.extensions并解决了我的问题.谢谢! (2认同)