fix #1156 add defensive coding for scenario where host name does not match any alias
This commit is contained in:
parent
6d3e17a5f5
commit
86ce8994d9
|
@ -1,4 +1,4 @@
|
|||
@page "/"
|
||||
@page "/"
|
||||
@namespace Oqtane.Pages
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
@using Microsoft.Extensions.Configuration
|
||||
|
@ -35,6 +35,11 @@
|
|||
<a class="dismiss">🗙</a>
|
||||
</div>
|
||||
|
||||
@if (Model.Message != "")
|
||||
{
|
||||
@Model.Message
|
||||
}
|
||||
|
||||
<script src="js/interop.js"></script>
|
||||
|
||||
@if (Configuration.GetSection("Runtime").Value == "WebAssembly")
|
||||
|
|
|
@ -39,6 +39,7 @@ namespace Oqtane.Pages
|
|||
|
||||
public string HeadResources = "";
|
||||
public string BodyResources = "";
|
||||
public string Message = "";
|
||||
|
||||
public void OnGet()
|
||||
{
|
||||
|
@ -54,20 +55,28 @@ namespace Oqtane.Pages
|
|||
if (HttpContext.Request.Cookies[CookieRequestCultureProvider.DefaultCookieName] == null && !string.IsNullOrEmpty(_configuration.GetConnectionString("DefaultConnection")))
|
||||
{
|
||||
var uri = new Uri(Request.GetDisplayUrl());
|
||||
var alias = _aliases.GetAlias(uri.Authority + "/" + uri.LocalPath.Substring(1));
|
||||
_state.Alias = alias;
|
||||
|
||||
// set default language for site if the culture is not supported
|
||||
var languages = _languages.GetLanguages(alias.SiteId);
|
||||
if (languages.Any() && languages.All(l => l.Code != CultureInfo.CurrentUICulture.Name))
|
||||
var hostname = uri.Authority + "/" + uri.LocalPath.Substring(1);
|
||||
var alias = _aliases.GetAlias(hostname);
|
||||
if (alias != null)
|
||||
{
|
||||
var defaultLanguage = languages.Where(l => l.IsDefault).SingleOrDefault() ?? languages.First();
|
||||
_state.Alias = alias;
|
||||
|
||||
SetLocalizationCookie(defaultLanguage.Code);
|
||||
// set default language for site if the culture is not supported
|
||||
var languages = _languages.GetLanguages(alias.SiteId);
|
||||
if (languages.Any() && languages.All(l => l.Code != CultureInfo.CurrentUICulture.Name))
|
||||
{
|
||||
var defaultLanguage = languages.Where(l => l.IsDefault).SingleOrDefault() ?? languages.First();
|
||||
|
||||
SetLocalizationCookie(defaultLanguage.Code);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalizationCookie(_localizationManager.GetDefaultCulture());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SetLocalizationCookie(_localizationManager.GetDefaultCulture());
|
||||
Message = $"No Matching Alias For Host Name {hostname}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user