- ABP Framework version: v8.0.1
- UI Type: Blazor Server
- Database System: EF Core (SQL Server)
- Tiered (for MVC) or Auth Server Separated (for Angular): Tiered
- Exception message and full stack trace: No Exception
- Steps to reproduce the issue: Hi. Our problem is When the user comes to our Blazor page with querystring , we want him to be directed to the same link again after successful login. For example, when the user comes to us with the URL https://testproject.com\myuser?id=1234, we want the user to return to the \myuser?id=1234 page instead of the default page when returning to the Blazor application after authentication.We try to override redirect_uri but as i understand correctly OpenIdDict library overrides it Thank you
10 Answer(s)
-
0
hi
Can you share full logs of all related requests?
Thanks
liming.ma@volosoft.com
-
0
Hi.Actually request did not shown on logs. But i share it anyway https://we.tl/t-wdky8sp5FI
-
0
Thanks I will check and find a way.
-
0
hi
You can use the URL like:
https://localhost:44309/account/login?returnUrl=/MyPage
ThereturnUrl
parameter can do this. -
0
Hi ; we redirect non-login user to login page with tihs code. how can we transport return url with this code
app.Use(async (httpContext, next) => { if (!httpContext.Request.Path.ToString().Contains("account/login")) { if (httpContext.User.Identity is not { IsAuthenticated: true }) { httpContext.Response.Redirect("/account/login"); return; } } await next(); });
-
0
var yourPage = get page(querystring) from httpcontext httpContext.Response.Redirect("/account/login?returnUrl=" + yourPage);
-
0
My page is dynamic. for example : https://subdonamin.domain.com/crm-aday-details?adayId=4503#0 My scenario ;
- User can go to link with parameter.
- if user doesn't login, we want to redirect to login page with user return url
- But we cant trasport dynamic return url to login page.
we get reference from this ticket https://support.abp.io/QA/Questions/5206/Blazor-Server---Force-Authentication-For-Root--Entire-Site
-
0
hi
You can try that:
app.Use(async (httpContext, next) => { if (!httpContext.Request.Path.ToString().Contains("account/login")) { if (httpContext.User.Identity is not { IsAuthenticated: true }) { ///crm-aday-details?adayId=4503#0 var path = httpContext.Request.GetEncodedPathAndQuery(); if (path.IsNullOrWhiteSpace() || path == "/") { httpContext.Response.Redirect("/account/login"); } else { httpContext.Response.Redirect("/account/login?returnUrl=" + path); } return; } } await next(); });
-
0
thanks you. it works fine I implment similiar code but I will use your code .
I implement this code. But your code is more than smart to my code //string returnUrl = httpContext.Request.Path.ToString() + httpContext.Request.QueryString.ToString(); //if(returnUrl != null && returnUrl != "/") //httpContext.Response.Redirect("/account/login?returnUrl=" + returnUrl); //else //httpContext.Response.Redirect("/account/login");
-
0
Great