イントラネットアプリケーションにグローバリゼーションを追加しようとしています。ユーザーにカルチャーの設定を許可するためにクッキーを使用しています。ミドルウェアが設定され、実行されていますが、私はUI選択に基づいてクッキーに追加することで問題に遭遇しました。ASP.Net Core 1.1でResponse.Cookies.Append()を実行する方法は?
方法は、以下のようにAsp.Netコアのドキュメントからまっすぐです:は
- 応答が存在しません:
public void ConfigureServices(IServiceCollection services) { services.Configure<RequestLocalizationOptions>( options => { var supportedCultures = new List<CultureInfo> { new CultureInfo("en-US"), new CultureInfo("en-GB"), new CultureInfo("fr-FR"), new CultureInfo("es-ES") }; options.DefaultRequestCulture = new RequestCulture(culture: "en-GB", uiCulture: "en-GB"); options.SupportedCultures = supportedCultures; options.SupportedUICultures = supportedCultures; }); services.AddLocalization(); services.AddMvc(config => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); config.Filters.Add(new AuthorizeFilter(policy)); }) .AddViewLocalization(); services.AddSession(options => { options.CookieName = "Intranet"; }); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { var locOptions = app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>(); app.UseRequestLocalization(locOptions.Value); app.UseSession(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } [HttpPost] public IActionResult SetLanguage(string culture, string returnUrl) { Response.Cookies.Append( CookieRequestCultureProvider.DefaultCookieName, CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)), new CookieOptions { Expires = DateTimeOffset.UtcNow.AddYears(1) }); return LocalRedirect(returnUrl); }
問題があります
私は試しました:
あなたがCookieRequestCultureProviderを使用するようにしたすべての- のHttpResponse、HttpRequestの
- LocalRedirectResult
あなたは内部にそのコードを持っていますかコントローラーまたは別の場所でスタンドアロンになっていますか? – DavidG
[Cookies and ASP.NET Core]の可能な複製(https://stackoverflow.com/questions/36166075/cookies-and-asp-net-core) –