diff --git a/Oqtane.Client/Modules/Admin/Login/Index.razor b/Oqtane.Client/Modules/Admin/Login/Index.razor index 61c9fe9a..f59834f8 100644 --- a/Oqtane.Client/Modules/Admin/Login/Index.razor +++ b/Oqtane.Client/Modules/Admin/Login/Index.razor @@ -89,8 +89,6 @@ private bool _alwaysremember = false; private string _code = string.Empty; - private string _returnUrl = string.Empty; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Anonymous; public override List Resources => new List() @@ -108,11 +106,6 @@ _togglepassword = SharedLocalizer["ShowPassword"]; - if (PageState.QueryString.ContainsKey("returnurl")) - { - _returnUrl = PageState.QueryString["returnurl"]; - } - if (PageState.QueryString.ContainsKey("name")) { _username = PageState.QueryString["name"]; @@ -213,12 +206,12 @@ // hybrid apps utilize an interactive login var authstateprovider = (IdentityAuthenticationStateProvider)ServiceProvider.GetService(typeof(IdentityAuthenticationStateProvider)); authstateprovider.NotifyAuthenticationChanged(); - NavigationManager.NavigateTo(NavigateUrl(WebUtility.UrlDecode(_returnUrl), true)); + NavigationManager.NavigateTo(NavigateUrl(PageState.ReturnUrl, true)); } else { // post back to the Login page so that the cookies are set correctly - var fields = new { __RequestVerificationToken = SiteState.AntiForgeryToken, username = _username, password = _password, remember = _remember, returnurl = _returnUrl }; + var fields = new { __RequestVerificationToken = SiteState.AntiForgeryToken, username = _username, password = _password, remember = _remember, returnurl = WebUtility.UrlEncode(PageState.ReturnUrl) }; string url = Utilities.TenantUrl(PageState.Alias, "/pages/login/"); await interop.SubmitForm(url, fields); } @@ -260,7 +253,7 @@ private void Cancel() { - NavigationManager.NavigateTo(WebUtility.UrlDecode(_returnUrl)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } private async Task Forgot() @@ -328,7 +321,7 @@ private void ExternalLogin() { - NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + _returnUrl), true); + NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + WebUtility.UrlEncode(PageState.ReturnUrl)), true); } } diff --git a/Oqtane.Client/Modules/Admin/Register/Index.razor b/Oqtane.Client/Modules/Admin/Register/Index.razor index 8526e02e..3835cfaf 100644 --- a/Oqtane.Client/Modules/Admin/Register/Index.razor +++ b/Oqtane.Client/Modules/Admin/Register/Index.razor @@ -128,9 +128,9 @@ else if (user != null) { await logger.LogInformation("User Created {Username} {Email}", _username, _email); - if (PageState.QueryString.ContainsKey("returnurl")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(WebUtility.UrlDecode(PageState.QueryString["returnurl"])); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else // legacy behavior { @@ -167,7 +167,7 @@ else private void Cancel() { - NavigationManager.NavigateTo(NavigateUrl(string.Empty)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } private void TogglePassword() diff --git a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor index 24d5cf6a..c67f3305 100644 --- a/Oqtane.Client/Modules/Admin/UserProfile/Index.razor +++ b/Oqtane.Client/Modules/Admin/UserProfile/Index.razor @@ -483,9 +483,9 @@ await SettingService.UpdateUserSettingsAsync(settings, PageState.User.UserId); await logger.LogInformation("User Profile Saved"); - if (PageState.QueryString.ContainsKey("returnurl")) + if (!string.IsNullOrEmpty(PageState.ReturnUrl)) { - NavigationManager.NavigateTo(WebUtility.UrlDecode(PageState.QueryString["returnurl"])); + NavigationManager.NavigateTo(PageState.ReturnUrl); } else // legacy behavior { @@ -551,7 +551,7 @@ private void Cancel() { - NavigationManager.NavigateTo(NavigateUrl(string.Empty)); + NavigationManager.NavigateTo(PageState.ReturnUrl); } private void ProfileChanged(ChangeEventArgs e, string SettingName)