[英]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.