如何确保在IdentityServer通知期间HttpContext.Current不会丢失

时间:2019-05-24 18:43:34

标签: asp.net-core session-state httpcontext synchronizationcontext

我有一种情况,我在客户端中的设置代码中使用通知事件非常简单,如下所示。这是一个使用AspNetCore IdentityServer4的AspNet Mvc 4.72客户端:

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的存在有明确的答案,请告诉我。

0 个答案:

没有答案