2017-10-20 19 views
0

Je dois générer le cookie de langage "Abp.Localization.CultureName" en ignorant le chemin de l'application.Possibilité d'ignorer le chemin d'application dans le cookie de langue

Je trouve dans le code source de cette partie:

protected virtual void SetCultureToCookie(HttpContext context, string culture) 
    { 
     context.Response.SetCookie(
      new HttpCookie(_webLocalizationConfiguration.CookieName, culture) 
      { 
       Expires = Clock.Now.AddYears(2), 
       Path = context.Request.ApplicationPath 
      } 
     ); 
    } 

Comment puis-je remplacer ce?

Thx

Répondre

0

Sous CurrentCultureSetter passer outre:

public class MyCurrentCultureSetter : CurrentCultureSetter 
{ 
    protected override void SetCultureToCookie(HttpContext context, string culture) 
    { 
     // ... 
    } 
} 

Et remplacer le service en PreInitialize() de votre module méthode:

Configuration.ReplaceService<ICurrentCultureSetter, MyCurrentCultureSetter>(); 
+0

Thx aaron, j'ai créé ma classe personnalisée et travaille en partie. En regardant à travers le code que je trouve la AbpLocalizationController de classe avec le code suivant: ActionResult virtuel public ChangeCulture ... ... Response.Cookies.Add ( nouvelle HttpCookie (_webLocalizationConfiguration.CookieName, cultureName) { expires = Clock.Now.AddYears (2), Chemin d'accès = Request.ApplicationPath } ); Pourquoi cela? Je pense est redondant, de toute façon je vais aussi remplacer ce –

+0

Qui est utilisé ici: https://github.com/aspnetboilerplate/module-zero-core-template/search?q=ChangeCulture – aaron

+0

Oui, je sais que c'est utilisé dans la base Contrôleur MVC pour la localisation, ma vraie question est sur la duplication, pourquoi la création de cookie est à deux endroits? Ne vaut-il pas mieux centraliser la création du cookie dans la classe CurrentCultureSetter? Aussi parce que le module Abp.Web.Mvc dépend du module Abp.Web –