Error executing template "Designs/Swift/UserManagement/Login/Login.cshtml"
System.UriFormatException: Invalid URI: The URI is empty.
   at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions)
   at System.Uri..ctor(String uriString)
   at CompiledRazorTemplates.Dynamic.RazorEngine_0e858709de1d47aa9b161473f6918c1c.ExecuteAsync()
   at RazorEngine.Templating.TemplateBase.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineCore.RunTemplate(ICompiledTemplate template, TextWriter writer, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass23_0.<Run>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.Run(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb 3 @using Dynamicweb.Environment 4 @using System.Globalization 5 @using Microsoft.AspNetCore.WebUtilities 6 7 @{ 8 string pageTitle = Pageview.Page.GetDisplayName(); 9 string pageId = GetGlobalValue("Global:Page.ID"); 10 int signInProfilePageId = Pageview.Page.ID; 11 string currentUserId = GetGlobalValue("Global:Extranet.UserID"); 12 string goBackToPage = Dynamicweb.Context.Current.Request.GetString("GoBackToPage"); //parameter from anonymous checkout 13 string absoluteUri = Dynamicweb.Context.Current?.Request?.UrlReferrer?.AbsoluteUri != null ? Dynamicweb.Context.Current.Request.UrlReferrer.AbsoluteUri : ""; 14 15 // Custom: Logik som fjerner CurrencyCode fra action i form 16 var uri = new Uri(absoluteUri); 17 // 1) Sti uden query 18 var basePath = uri.GetLeftPart(UriPartial.Path); 19 // 2) Parse query-parametre 20 var parameters = QueryHelpers.ParseQuery(uri.Query); 21 // 3) Fjern CurrencyCode 22 parameters.Remove("CurrencyCode"); 23 // 4) Genopbyg query-streng 24 string newQuery = string.Join("&", 25 parameters.SelectMany(kvp => kvp.Value, (kvp, value) => 26 $"{Uri.EscapeDataString(kvp.Key)}={Uri.EscapeDataString(value)}" 27 ) 28 ); 29 // 5) Sammensæt ny URL 30 string cleanedUrl = string.IsNullOrEmpty(newQuery) 31 ? basePath 32 : $"{basePath}?{newQuery}"; 33 absoluteUri = cleanedUrl; 34 35 string redirectPage = !string.IsNullOrEmpty(goBackToPage) ? "Default.aspx?Id=" + goBackToPage : absoluteUri; 36 redirectPage = string.IsNullOrEmpty(goBackToPage) && !string.IsNullOrEmpty(GetString("UserManagement:User.Login.SuccessRedirectToPage")) ? GetString("UserManagement:User.Login.SuccessRedirectToPage") : redirectPage; 37 38 string createAccountPageLink = Pageview.CurrentParagraph.Item["CreateAccountPage"] != null ? Pageview.CurrentParagraph.Item["CreateAccountPage"].ToString() : ""; 39 40 string contentPadding = Pageview.CurrentParagraph.Item["ContentPadding"] != null ? Pageview.CurrentParagraph.Item["ContentPadding"].ToString() : ""; 41 contentPadding = contentPadding == "none" ? "px-0" : contentPadding; 42 contentPadding = contentPadding == "small" ? "p-2 p-md-3" : contentPadding; 43 contentPadding = contentPadding == "large" ? "p-4 p-md-5" : contentPadding; 44 var themeRaw = Pageview.CurrentParagraph.Item["Theme"]?.ToString(); 45 string theme = !string.IsNullOrEmpty(themeRaw) ? " theme " + themeRaw.Replace(" ", "").Trim().ToLower() : " theme light"; 46 47 var loginProvider = GetLoop("DWExtranetExternalLoginProviders"); 48 } 49 50 <div class="@(contentPadding)"> 51 52 @if (Pageview.Area.CultureInfo.TwoLetterISOLanguageName == "da" && !string.IsNullOrEmpty(GetString($"DW_extranet_error_dk"))) 53 { 54 <div class="alert alert-danger" role="alert"> 55 @GetString($"DW_extranet_error_dk") 56 </div> 57 } 58 else if (!string.IsNullOrEmpty(GetString("DW_extranet_error_uk"))) 59 { 60 <div class="alert alert-danger" role="alert"> 61 @GetString($"DW_extranet_error_uk") 62 </div> 63 } 64 65 <div class="card border-0@(theme) mx-auto" style="max-width: 30rem;"> 66 67 <div class="card-header text-center p-4 border-bottom"> 68 <h4 class="display-6 m-0">@pageTitle</h4> 69 @if (!string.IsNullOrEmpty(createAccountPageLink)) 70 { 71 <p class="card-text mt-2">@Translate("Don't have an account yet?") <a href="@createAccountPageLink">@Translate("Create account here")</a></p> 72 } 73 </div> 74 75 <div class="card-body p-4"> 76 <form class="grid grid-1 gap-4" method="post"> 77 <input type="hidden" name="ID" value="@pageId"> 78 <input type="hidden" name="DWExtranetUsernameRemember" value="True"> 79 <input type="hidden" name="DWExtranetPasswordRemember" value="True"> 80 <input type="hidden" name="GoBackToPage" value="@goBackToPage"> 81 <input type="hidden" name="LoginAction" value="Login"> 82 83 @if (!Convert.ToBoolean(Pageview.CurrentParagraph.Item["EnableUserStartPageRedirect"])) { 84 <input type="hidden" name="redirect" value="@redirectPage"> 85 } 86 87 @foreach(LoopItem provider in loginProvider) 88 { 89 string iconPath = "/Files/IconsLoginProviders/"; 90 string providerName = provider.GetString("ProviderName").ToLower(); 91 string providerIcon = string.Empty; 92 93 if(providerName.Contains("azure")) 94 { 95 providerIcon = "azure"; 96 } 97 if(providerName.Contains("google")) 98 { 99 providerIcon = "google"; 100 } 101 102 <div class="d-grid"> 103 <a class="btn btn-primary-outline btn-lg" href="/Admin/Public/Social/ExternalLogin.aspx?action=login&providerID=@provider.GetValue("ProviderID")"> 104 <span class="d-flex justify-content-center align-items-center"> 105 <span class="icon-3 me-2"> 106 @ReadFile(iconPath + providerIcon + ".svg") 107 </span> 108 <span>@Translate("Sign in with") @provider.GetString("ProviderName")</span> 109 </span> 110 </a> 111 </div> 112 113 <div class="d-flex align-items-center gap-3"> 114 <span class="border-top flex-fill"></span> 115 <span class="text-uppercase">@Translate("or")</span> 116 <span class="border-top flex-fill"></span> 117 </div> 118 } 119 120 <div> 121 <div class="form-label fs-7 mb-0 opacity-75">@Translate("Your email")</div> 122 <div class="form-floating"> 123 <input type="text" class="form-control" id="login-username" name="username" placeholder="@Translate("Email")" required> 124 <label for="login-username">@Translate("Email")</label> 125 </div> 126 127 </div> 128 129 <div> 130 <div class="d-flex justify-content-between align-items-center"> 131 <div class="form-label fs-7 mb-0 opacity-75">@Translate("Your password")</div> 132 <a tabindex="-1" class="form-label-link" href="/Default.aspx?id=@(signInProfilePageId)&LoginAction=Recovery" id="ForgotPasswordButton">@Translate("Forgot password?")</a> 133 </div> 134 135 <div class="form-floating"> 136 <input type="password" class="form-control" id="LoginPassword" name="password" placeholder="@Translate("Password")" required> 137 <label for="LoginPassword">@Translate("Password")</label> 138 </div> 139 </div> 140 141 <div class="form-check"> 142 <input class="form-check-input" type="checkbox" value="True" name="Autologin" id="RememberMe"> 143 <label class="form-check-label" for="RememberMe">@Translate("Keep me signed in")</label> 144 </div> 145 146 <div class="d-grid"> 147 <button type="submit" class="btn btn-primary btn-lg" id="SignInButton">@Translate("Sign in")</button> 148 </div> 149 </form> 150 </div> 151 </div> 152 </div> 153 154
By clicking 'Accept All' you consent that we may collect information about you for various purposes, including: Statistics and Marketing