IdentityServer4重定向到带有客户端信息的登录操作

时间:2019-06-04 10:51:30

标签: .net-core identityserver4 asp.net-core-identity

是否有一种方法可以管理到登录页面的重定向,从而将客户端参数保留在查询字符串中?

我在身份服务器上创建了一个忘记密码页面,并插入了重定向到登录页面

<a asp-action="Login" asp-controller="Account">Go Log in</a>

如果我尝试转到此页面,然后通过单击此按钮返回登录页面。登录时,重定向URL不起作用,并且保留在身份服务器上。

1 个答案:

答案 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.
}

成功登录后,重定向

我希望这对您有帮助