사용자가 문화권 환경 설정을 허용하기 위해 쿠키를 사용하여 인트라넷 응용 프로그램에 세계화를 추가하려고합니다. 미들웨어가 설정되어 실행 중이지만 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); }
이슈는
시도 :
,- HttpResponse에, HttpRequest에
- LocalRedirectResult 당신이 CookieRequestCultureProvider을 사용했습니다 모든
"실종"이 당신 안에 그 코드가 있습니까 컨트롤러 또는 다른 곳에서 독립 실행 형입니까? – DavidG
[쿠키 및 ASP.NET 코어] (https://stackoverflow.com/questions/36166075/cookies-and-asp-net-core)의 가능한 복제본 –