diff --git a/Oqtane.Client/Modules/Admin/Dashboard/Index.razor b/Oqtane.Client/Modules/Admin/Dashboard/Index.razor
index 98729f76..69f3d9cb 100644
--- a/Oqtane.Client/Modules/Admin/Dashboard/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Dashboard/Index.razor
@@ -13,7 +13,7 @@
{
string url = NavigateUrl(p.Path);
-
+
@((MarkupString)SharedLocalizer[p.Name].ToString().Replace(" ", "
"))
diff --git a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs
index 0b3ce9b8..f8f71ee9 100644
--- a/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs
+++ b/Oqtane.Client/Themes/Controls/Theme/LoginBase.cs
@@ -26,23 +26,26 @@ namespace Oqtane.Themes.Controls
var allowexternallogin = (SettingService.GetSetting(PageState.Site.Settings, "ExternalLogin:ProviderType", "") != "") ? true : false;
var allowsitelogin = bool.Parse(SettingService.GetSetting(PageState.Site.Settings, "LoginOptions:AllowSiteLogin", "true"));
- var returnurl = WebUtility.UrlEncode(PageState.Route.PathAndQuery);
-
- // Check if not already actioned Login
- if(!NavigationManager.Uri.ToString().Contains("login?returnurl=%2F"))
+ var returnurl = "";
+ if (!PageState.QueryString.ContainsKey("returnurl"))
{
- if (allowexternallogin && !allowsitelogin)
- {
- // external login
- NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + returnurl), true);
- }
- else
- {
- // local login
- NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + returnurl));
- }
+ returnurl = WebUtility.UrlEncode(PageState.Route.PathAndQuery); // remember current url
+ }
+ else
+ {
+ returnurl = PageState.QueryString["returnurl"]; // use existing value
}
+ if (allowexternallogin && !allowsitelogin)
+ {
+ // external login
+ NavigationManager.NavigateTo(Utilities.TenantUrl(PageState.Alias, "/pages/external?returnurl=" + returnurl), true);
+ }
+ else
+ {
+ // local login
+ NavigationManager.NavigateTo(NavigateUrl("login", "?returnurl=" + returnurl));
+ }
}
protected async Task LogoutUser()