2017-08-31 20 views

答えて

0

あなたはMicrosoft.AspNetCore.Session Nugetパッケージを追加しConfigureServices方法でセッションのサポートを追加する必要があります。

services.AddSession(options => 
    { 
     options.IdleTimeout = TimeSpan.FromMinutes(20); 
     options.CookieHttpOnly = true; 
    }); 

はもっとここを参照してください:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state

1

startup.csファイルにサービスとしてセッションを追加する必要があります。

は、Visual Studio 2017にはproject.jsonがないので、あなたはその部分をスキップすることができservices.AddMvc();Go to this link for all the details.

前にそれを追加することを忘れないでください。

0

あなたは、サービス構成でセッションを登録する必要があります -

services.AddSession(options => 
      { 
       options.IdleTimeout = TimeSpan.FromMinutes(30); 
       options.CookieHttpOnly = true; 
      }); 

どこでもコンストラクタに注入し、それを使用するには。ここでは、デモ用のコントローラコンストラクタを使用しています。 -

using Microsoft.AspNetCore.Http; 

public class AccountController : Controller 
    { 
     private ISession _session; 
     public AccountController(IHttpContextAccessor contextAccessor) 
     { 
      _session = contextAccessor.HttpContext.Session; 
     } 
    } 

ここで目的を簡略化するために値を取得して設定します。使用が簡単である

public static class HttpSessionExtension 
    { 
     public static void Set<T>(this ISession session, string key, T value) 
     { 
      session.SetString(key, JsonConvert.SerializeObject(value)); 
     } 

     public static T Get<T>(this ISession session, string key) 
     { 
      var value = session.GetString(key); 
      return value == null ? default(T) : 
            JsonConvert.DeserializeObject<T>(value); 
     } 
    } 

- -

_session.Set<MyModel>(Mykey, value); 
_session.Get<MyModel>(Mykey); 
Iは、以下の拡張メソッドを使用しました
関連する問題