セッションは、ユーザー データを保存/保存できるようにする ASP.NET Core の機能です。
Session は、SessionId をキーとして使用して、サーバー上の辞書にデータを保存します。
SessionId はクライアントの Cookie に保存されます。 SessionId Cookie は次の方法で送信されます。 リクエストごとに。SessionId Cookie は各ブラウザに固有であり、異なるブラウザ間で共有することはできません。
SessionId Cookie にはタイムアウトが指定されていないため、ブラウザを閉じると削除されます。 ブラウザセッションが終了します。
サーバー側では、セッションは限られた時間だけ保持されます。デフォルトのセッションタイムアウトは、 サーバーは 20 分ですが、設定可能です。
Microsoft.AspNetCore.Session パッケージは、ASP.NET Core でセッションを管理するためのミドルウェアを提供します。アプリケーションでセッションを使用するには、このパッケージをプロジェクトの依存関係として project.json ファイルに追加する必要があります。
次のステップは、Startup クラスでセッションを構成することです。
スタートアップ クラスの ConfigureServices メソッドで「AddSession」メソッドを呼び出す必要があります。
「AddSession」メソッドには、さまざまなセッション パラメーターを受け入れるオーバーロードされたメソッドがあります。
アイドル タイムアウト、Cookie 名、Cookie ドメインなどのオプション。
セッション オプションを渡さない場合、システムはデフォルトのオプションを使用します。
public class Startup { public void Configure(IApplicationBuilder app){ app.UseSession(); app.UseMvc(); app.Run(context => { return context.Response.WriteAsync("Hello World!"); }); } public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(60); }); } }
セッションへのアクセス方法
public class HomeController : Controller{ [Route("home/index")] public IActionResult Index(){ HttpContext.Session.SetString("product","laptop"); return View(); } [Route("home/GetSessionData")] public IActionResult GetSessionData(){ ViewBag.data = HttpContext.Session.GetString("product");; return View(); } }
以上がC# ASP.NET Core でセッションを有効にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。