Как убедиться, что HttpContext.Current не теряется во время уведомлений IdentityServer - PullRequest
0 голосов
/ 24 мая 2019

У меня есть сценарий, в котором я использую событие уведомления в моем клиенте в коде установки, очень просто, как показано ниже.Это клиент 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, пожалуйста, дайте мне знать.

...