ASPでの使用方法NET CoreでのSessionの使用
3172 ワード
ASP.NET Coreはプラットフォームにまたがる、オープンソース、軽量レベル、高性能かつ高度にモジュール化されたwebフレームワークであり、Sessionはユーザー情報記憶を実現することができ、同じクライアントの複数回の要求の間でユーザー追跡を実現することができ、ASP.Net Coreでは、
ミドルウェアの価値は、
セッションミドルウェアを使用するには、Visual Studio 2019の
セッションミドルウェアがIOCコンテナに組み込まれると、次に、コンフィギュレーションメソッドでUseSessionを呼び出してセッションを開始することができる.
Set,SetInt 32,SetStringの3つの方法を使用してSessionのストレージを実現することができます.これらの方法には2つのパラメータがあります.1つはキーで、1つはキーに対応するデータで、Set方法のvalueはbyte[]形式に対応しています.
同様に、Get、GetInt 32、GetStringメソッドを使用してセッションの読み取りを実現できます.Getメソッドはstring形式のkeyを受信し、byte[]配列を返します.これらの拡張メソッドを使用するには、
次のコードは、sessionにデータを追加する方法を示しています.
次に、sessionからデータを取得する方法を見てみましょう.次のコードに示します.
他のタイプのデータを設定または取得したい場合は、ISessionインタフェースに拡張メソッドを追加し、独自にシーケンス化ロジックを実装し、sessionから複雑なタイプを設定または取得する場合は、このタイプをjsonにシーケンス化するか、jsonをmodelに逆シーケンス化することができます.
もう1つ注意したいのは、デフォルトのセッションはメモリベースです.つまり、プロセスがセッションを閉じると失われます.セッションの持続化を実現するには、sqlserverまたはredisを使用します.
翻訳リンク:
https://www.infoworld.com/art...
Microsoft.AspNetCore.Session
ミドルウェアを使用してセッションメカニズムを有効にすることができます.ミドルウェアの価値は、
request -> response
のプロセスにおいて、例えば、データを監視し、ルーティングを切り替え、フロー中のメッセージ体を修正することであり、通常、ミドルウェアはチェーン方式でASPに注入される.Net Coreのpipelineパイプラインでは,この論文では主にSessionミドルウェアの使用方法について議論する.Sessionミドルウェアのインストール
セッションミドルウェアを使用するには、Visual Studio 2019の
NuGet package manager
ビジュアルインタフェースを使用してインストールするか、NuGet package manager console
コマンドラインで次のコマンドを入力します.
Install-Package Microsoft.AspNetCore.Session
セッションミドルウェアの構成
Microsoft.AspNetCore.Session
がプロジェクトに正常にインストールされました.次にASPに追加できます.Net Core pipelineでは、セッションを開始するには、IDistributedCacheインタフェースを実装したcache storeを使用してセッションの最下位ストレージとして使用する必要があります.その後、ConfigureServicesメソッドの下でAddSessionメソッドを呼び出してIOCコンテナに詰め、最後にStartup.Configureメソッドでは、UseSessionを使用してrequest->response要求パイプに挿入します.具体的なコードは次のとおりです.
public void ConfigureServices(IServiceCollection services)
{
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromSeconds(5);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
セッションミドルウェアがIOCコンテナに組み込まれると、次に、コンフィギュレーションメソッドでUseSessionを呼び出してセッションを開始することができる.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseSession();
app.UseHttpContextItemsMiddleware();
app.UseMvc();
}
セッションの保存と取得
Set,SetInt 32,SetStringの3つの方法を使用してSessionのストレージを実現することができます.これらの方法には2つのパラメータがあります.1つはキーで、1つはキーに対応するデータで、Set方法のvalueはbyte[]形式に対応しています.
同様に、Get、GetInt 32、GetStringメソッドを使用してセッションの読み取りを実現できます.Getメソッドはstring形式のkeyを受信し、byte[]配列を返します.これらの拡張メソッドを使用するには、
Microsoft.AspNetCore.Http
をプロジェクトに参照する必要があります.次のコードは、sessionにデータを追加する方法を示しています.
public IActionResult Index()
{
HttpContext.Session.SetString("Message", "Hello World!");
HttpContext.Session.SetInt32("Year", 2019);
return View();
}
次に、sessionからデータを取得する方法を見てみましょう.次のコードに示します.
public IActionResult About()
{
ViewBag.Message = HttpContext.Session.GetString("Message");
ViewBag.Year = HttpContext.Session.GetInt32("Year");
return View();
}
他のタイプのデータを設定または取得したい場合は、ISessionインタフェースに拡張メソッドを追加し、独自にシーケンス化ロジックを実装し、sessionから複雑なタイプを設定または取得する場合は、このタイプをjsonにシーケンス化するか、jsonをmodelに逆シーケンス化することができます.
もう1つ注意したいのは、デフォルトのセッションはメモリベースです.つまり、プロセスがセッションを閉じると失われます.セッションの持続化を実現するには、sqlserverまたはredisを使用します.
翻訳リンク:
https://www.infoworld.com/art...