簡體   English   中英

檢查ASP.NET Core 1.0中的會話

[英]Check for session in ASP.NET Core 1.0

由於未配置會話,因此訪問上下文的會話屬性會引發異常。

如何根據配置檢測會話是否可用。

換句話說,我不能這樣做: context.Session?.Clear();

我認為最安全,最高效的方法是使用請求功能 例如,以下是獲取會話的簡單擴展方法;如果未啟用,則為null:

public static ISession SafeSession(this HttpContext httpContext)
{
    var sessionFeature = httpContext.Features.Get<ISessionFeature>();
    return sessionFeature == null ? null : httpContext.Session;
}

來自MVC控制器的示例用法:

var session = this.HttpContext.SafeSession();

但是,可以采取一些有問題的解決方法來讓您繼續工作,直到找到更好的解決方案為止。

public class Startup
{
    public static bool IsSessionAvailable { get; set; }
    //...

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        IsSessionAvailable = false; // session not available

    //...

然后在您的控制器中。

if (Startup.IsSessionAvailable)
{
    HttpContext.Session.Clear();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM