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

questionAnswers(7)

yourAnswerToTheQuestion