是否有一种方法可以管理到登录页面的重定向,从而将客户端参数保留在查询字符串中?
我在身份服务器上创建了一个忘记密码页面,并插入了重定向到登录页面
<a asp-action="Login" asp-controller="Account">Go Log in</a>
如果我尝试转到此页面,然后通过单击此按钮返回登录页面。登录时,重定向URL不起作用,并且保留在身份服务器上。
答案 0 :(得分:0)
不确定这是否对您有帮助,但这是我的答案。
我正在使用带有客户端凭据的隐式流,并且在客户端上具有以下设置。
Startup.cs
services.AddAuthentication(option => {
option.DefaultScheme = "Cookies";
option.DefaultChallengeScheme = "oidc";
}).AddCookie("Cookies")
.AddOpenIdConnect("oidc", options => {
options.SignInScheme = "Cookies";
options.Authority = Configuration["Authentication:Authority"];
options.RequireHttpsMetadata = false;
options.ClientId = Configuration["Authentication:ClientId"];
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.ClientSecret = "secret";
options.AuthenticationMethod = OpenIdConnectRedirectBehavior.FormPost;
});
在控制器上,您试图保护具有[Authorize]属性。
在我的客户应用程序中,我有这个。
[Authorize]
public IActionResult performlogin()
{
return RedirectToAction("index", "home");
}
那应该将您重定向到身份服务器以登录。
我在身份服务器上登录的方法签名如下。
public async Task<IActionResult> Login(string returnUrl){
// do login code and redirect
// returnUrl should have the redirect path with query string.
}
成功登录后,重定向
我希望这对您有帮助