Мое приложение ASP.NET Core использует OpenID Connect для входа в систему пользователя. После того, как пользователь вошел в систему, я хочу получить файл cookie, который был установлен до входа в систему. Прямо сейчас я использую событие OnTicketReceived промежуточного программного обеспечения OIDC.
Чтобы получить доступ к HttpContext, я использую вспомогательный класс, который использует объект IHttpContextAccessor.
Проблема в том, что переменная myCookie остается нулевой.
Как я могу получить значение cookie после входа в систему?
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddAuthentication(options =>
{
...
})
.AddOpenIdConnect("oidc", options =>
{
...
options.Events = new OpenIdConnectEvents
{
OnTicketReceived = e =>
{
if (e.Principal.Identity.IsAuthenticated)
{
string myCookie = HttpHelper.HttpContext.Request.Cookies[Constants.MY_COOKIE];
}
}
};
});
}
public static class HttpHelper
{
private static IHttpContextAccessor accessor;
public static void Configure(IHttpContextAccessor httpContextAccessor)
{
accessor = httpContextAccessor;
}
public static HttpContext HttpContext => accessor.HttpContext;
}