如何为不同的环境设置redirectUri?在我的开发环境中,我想返回
在我部署的azure版本中,我想返回
https://appname.portal.p.azurewebsites.net/
在我的startup.auth.cs文件中,我有这个
#if DEBUG
RedirectUri = "https://localhost/",
#else
RedirectUri = "https://appname.portal.p.azurewebsites.net/",
#endif
如果我在发布模式下运行它将无法工作,我输入我的用户名和密码,我得到了
错误请求 - 请求太长
HTTP错误400.请求标头的大小太长。
但它可以在我的本地计算机上进行调试
答案 0 :(得分:0)
要根据当前的HTTP地址重定向网络应用,我们可以使用下面的RedirectToIdentityProvider
代码:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
},
RedirectToIdentityProvider = context =>
{
string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase;
string currentUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.Path;
context.ProtocolMessage.RedirectUri = currentUrl;
context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl;
return Task.FromResult(0);
}
}
});