MVC 5 Jak zdefiniować Owin LoginPath przy użyciu zlokalizowanych tras
Mam stronę MVC 5 ze zlokalizowanymi trasami zdefiniowanymi jako
routes.MapRoute(
name: "Default",
url: "{culture}/{controller}/{action}/{id}",
defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Gdzie skutkuje kultura domyślna"en-US"
.
Problem pojawia się przy starcie muszę zdefiniować adres URL logowania za pomocą właściwości LoginPath, która jest ustawiona raz i zawsze będzie korzystać z podanej wartości, np. domyślna kultura, jeśli „/ pl-Us / Account / Login” jest określoną wartością. Następnie próbowałem użyć klasy UrlHelper w nadziei na trochę magii, ale wynik jest oczywiście taki sam:
var httpContext = HttpContext.Current;
if (httpContext == null) {
var request = new HttpRequest("/", "http://example.com", "");
var response = new HttpResponse(new StringWriter());
httpContext = new HttpContext(request, response);
}
var httpContextBase = new HttpContextWrapper(httpContext);
var routeData = new RouteData();
var requestContext = new RequestContext(httpContextBase, routeData);
UrlHelper helper = new UrlHelper(requestContext);
var loginPath = helper.Action("Login", "Account");
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString(loginPath)
});
Moje pytanie brzmi: czy istnieje sposób na zhakowanie tego mechanizmu w celu dynamicznego pobierania bieżącej kultury lub czy jestem zmuszony ustawić bieżącą kulturę w pliku cookie, a po przekierowaniu na stronę logowania należy użyć wartości cookie, aby ustawić bieżącą kultura przed renderowaniem strony?
Dzięki