【问题标题】:How to configure MVC3 localization of Account LogOn?如何配置 Account LogOn 的 MVC3 本地化?
【发布时间】:2013-03-29 02:56:29
【问题描述】:

我最近将我的 mvc3 本地化结构从 lang 作为子域 (fr.domain.com) 转换为 lang 作为路径 (domain.com/fr)。

一切正常,但自动重定向到帐户登录。

假设我没有通过身份验证,我尝试访问 domain.com/fr/test 我被重定向到 domain.com/Account/LogOn?ReturnUrl...

如何配置我的网站以便重定向到 /fr/Account/LogOn?ReturnUrl...

编辑:

我使用路由映射

    routes.MapRoute(
        "DefaultLocalized", // Route name
        "{lang}/{controller}/{action}/{id}", // URL with parameters
        new { lang = "en", controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        , new { lang = "fr" }
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

解决方案: 这是我根据developer10214的建议实现的解决方案

public ActionResult LogOn()
        {
            if (System.Web.HttpContext.Current.Request.Url.Query.Contains("%2ffr%2f") && System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName != "fr")
                return Redirect("/fr/Account/LogOn" + System.Web.HttpContext.Current.Request.Url.Query);

            LogOnModel model = new LogOnModel() { UserName = "", Password = "" };
            return View(model);
        }

【问题讨论】:

  • 了解您如何对本地化(路线图、区域)进行更改会很有用。

标签: asp.net-mvc localization


【解决方案1】:

我认为您被重定向到通用帐户/登录操作的原因是,此路径是在您的 web.config 的成员资格部分中配置的。如果您未登录,则对受 Authorize 属性保护的操作的每个请求都将在那里结束。

一个可能的解决方案是:

  • 通过从返回 url 中提取 lang 参数并重定向到正确的登录操作来更改登录操作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多