使用多个重定向网址作为“应用程序注册门户”应用程序

时间:2017-10-03 21:25:42

标签: microsoft-graph identityserver3

如果我在“Application registration portal”中创建应用,则只有第一个重定向网址可用。

例如;如果我先添加https://google.com/,则此网址有效。但如果我添加https://localhost/则不会。 当我首先添加https://localhost/和第二https://google.com/秒时,只有localhost网址可以使用。

使一切正常工作的唯一方法是在“应用程序注册门户”中创建两个单独的应用程序。一个用于开发环境,一个用于生产。

对我而言,感觉就像是服务器端缓存问题。

1 个答案:

答案 0 :(得分:-1)

解决了!我忘了尝试在github上找到的解决方案,这解决了我的问题。

https://github.com/IdentityServer/IdentityServer3/issues/1458


<强>更新

我的Startup.Auth.cs中的ConfigureAuth方法现在包含以下代码:

app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

app.UseCookieAuthentication(new CookieAuthenticationOptions());

app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions
    {
        ClientId = clientId,
        Authority = Authority,

        Notifications = new OpenIdConnectAuthenticationNotifications()
        {
            // If there is a code in the OpenID Connect response, redeem it for an access token and refresh token, and store those away.
            AuthorizationCodeReceived = (context) =>
            {
                var code = context.Code;
                ClientCredential credential = new ClientCredential(clientId, appKey);
                string signedInUserID = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value;
                AuthenticationContext authContext = new AuthenticationContext(Authority, new ADALTokenCache(signedInUserID));
                AuthenticationResult result = authContext.AcquireTokenByAuthorizationCode(code, new Uri(redirectUri), credential, graphResourceId);

                return Task.FromResult(0);
            },

            RedirectToIdentityProvider = (context) =>
            {
                context.ProtocolMessage.RedirectUri = redirectUri;
                context.ProtocolMessage.PostLogoutRedirectUri = redirectUri;

                return Task.FromResult(0);
            }
        },
    }
);

注意:此代码用于使用基于cookie的身份验证的ASP.NET MVC应用程序。