У меня есть сценарий, в котором я использую событие уведомления в моем клиенте в коде установки, очень просто, как показано ниже.Это клиент AspNet Mvc 4.72, который использует AspNetCore IdentityServer4:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = "members",
...
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = notification =>
{
...
// Sometimes this is null but I have to make sure it is
// always available so I can initialize stuff here.
HttpContext.Current.<Use context here>;
return Task.CompletedTask;
}
}
});
На самом деле, точнее говоря, мне нужен доступ к состоянию сеанса, но не имеет значения, что есть некоторые другие потребности, непосредственно связанные.Я не совсем уверен, почему это происходит, но из моих исследований это как-то связано с SynchronizationContext и временем жизни запроса AspNet Mvc.
Если у кого-то есть четкий ответ о том, как обеспечить существование HttpContext, пожалуйста, дайте мне знать.