title: MVC 5 How to define Owin LoginPath with localized routes
body: <p>I have a MVC 5 website with localized routes defined as </p>
  
  <pre><code>routes.MapRoute(
              name: "Default",
              url: "{culture}/{controller}/{action}/{id}",
              defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Home", action = "Index", id = UrlParameter.Optional }
          );
  </code></pre>
  
  <p>Where the default culture results in <code>"en-US"</code>.</p>
  
  <hr>
  
  <p>The problem arises when on startup I have to define the login url using the LoginPath property, that is set once and it will always use the provided value, e.g. the default culture if "/en-Us/Account/Login" is the specified value. I then tried to use the UrlHelper class in the hope of experience some magic but the result is obviously the same: </p>
  
  <pre><code>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)
          });
  </code></pre>
  
  <p>My question is: is there a way to hack this mechanism to dynamically retrieve the current culture or am I forced to set the current culture into a cookie and, when I'm redirected to the login page, use the cookie value to set the current culture before rendering the page?</p>
  
  <p>Thanks</p>