Answer the question
In order to leave comments, you need to log in
HttpContext Request Cookies and Configurawait(false)?
Good evening, I'm thinking about something, let's say there is such a web.api .net method:
[HttpGet]
public async Task<IHttpActionResult> Index(Guid portalUser)
{
//можно сказать, что это фабрики которые создают нужные мне объекты.
//authCookiesManager примерно выглядит вот так:
/*
() =>
(context) => new AuthCookiesManager(
context.Request.Cookies,
context.Response.Cookies))
*/
var authCookiesManager = getAuthCookiesManager(ActionContext.HttpContext());
var сlient = getClient(ActionContext.HttpContext());
//можно ли здесь вызвать .ConfigureAwait(false)
var value = await сlient.FooAsync(portalUser);
//я понимаю, с .ConfigureAwait(false) в этом месте обратившись к ActionContext.HttpContext()
//я могу получить уже null, либо текущий контекст, либо вообще контекст какого-нибудь другого запроса
if (string.IsNullOrWhiteSpace(value ))
{
return BadRequest();
}
//authCookiesManager работает с cookies текущего запроса, которые я прокинул ему вначале метода
//Вот интересно поведение этих куки с .ConfigureAwait(false), они тоже подохнут или ссылки на них все же будут жить внутри данного объекта?
authCookiesManager.SaveSessionId(value , settings.Domain);
authCookiesManager.RemoveSessionState();
return Json(new ClientResult {RedirectTo = settings.Href});
}
internal static class HttpActionContextExtensions
{
private const string MsHttpContext = "MS_HttpContext";
internal static HttpContextBase HttpContext(this HttpActionContext context)
{
Ensure.NotNull(context, nameof(HttpActionContext));
return context.Request.Properties[MsHttpContext] as HttpContextBase;
}
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question