如果我在“Application registration portal”中创建应用,则只有第一个重定向网址可用。
例如;如果我先添加https://google.com/,则此网址有效。但如果我添加https://localhost/则不会。 当我首先添加https://localhost/和第二https://google.com/秒时,只有localhost网址可以使用。
使一切正常工作的唯一方法是在“应用程序注册门户”中创建两个单独的应用程序。一个用于开发环境,一个用于生产。
对我而言,感觉就像是服务器端缓存问题。
答案 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应用程序。