/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Security/perf/Microbenchmarks/ChunkingCookieManagerBenchmark.cs
64 строки
2 KB
Pranav K
Enable IDE2000 (#39803)
27 янв 2022, 19:02
Не верифицирован
27 янв 2022, 19:02
de3019b
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using BenchmarkDotNet.Attributes; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Primitives; using Microsoft.Net.Http.Headers; namespace Microsoft.AspNetCore.Security; public class ChunkingCookieManagerBenchmark { private ChunkingCookieManager _chunkingCookieManager; private HttpContext _httpContext; private CookieOptions _cookieOptions; private string _stringToAdd; [GlobalSetup] public void GlobalSetup() { _chunkingCookieManager = new ChunkingCookieManager() { ChunkSize = 86 }; _httpContext = new DefaultHttpContext(); _cookieOptions = new CookieOptions() { Domain = "foo.com", Path = "/", Secure = true }; _httpContext.Request.Headers["Cookie"] = new[] { "TestCookie=chunks-7", "TestCookieC1=abcdefghi", "TestCookieC2=jklmnopqr", "TestCookieC3=stuvwxyz0", "TestCookieC4=123456789", "TestCookieC5=ABCDEFGHI", "TestCookieC6=JKLMNOPQR", "TestCookieC7=STUVWXYZ" }; _stringToAdd = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; } [Benchmark] public void AppendCookies() { _chunkingCookieManager.AppendResponseCookie(_httpContext, "TestCookie1", _stringToAdd, _cookieOptions); _httpContext.Response.Headers[HeaderNames.SetCookie] = StringValues.Empty; } [Benchmark] public void DeleteCookies() { _chunkingCookieManager.DeleteCookie(_httpContext, "TestCookie", _cookieOptions); _httpContext.Response.Headers[HeaderNames.SetCookie] = StringValues.Empty; } }