Session は、ユーザーと Web アプリケーションのセッション状態を保存するためのメソッドです。この記事では、Asp.net Core でのセッションの使用方法を主に紹介します。
はじめに
2017 年は静かに始まりましたが、2017 年は私にとってもう一つの特に重要な年です。
私は、正月の休暇中に自宅で Asp.net Core のログイン認証コードを作成しました。1 つは、Asp.net Core での DLL の参照です。 DLL を直接参照しましたが、これは Core では不可能です。NuGet に基づいて追加するか、project.json に基づいて追加する必要があります。その後、VS を保存すると、クラス ライブラリ の復元が開始されます。 2 番目の問題は、Session を Core で使用するには、Session クラス ライブラリを追加する必要があります。
セッションを追加NuGet に基づいてプロジェクトに追加します:
Microsoft.AspNetCore.Session。
startup.cs を変更しますstartup.cs でメソッド ConfigureServices(IServiceCollection services) を見つけて、Session を挿入します (この場所は Asp.net Core パイプラインです):
services.AddSession();次に、 Asp.net Core がセッション データを保存するためにメモリを使用するようにするには、Configure(IApplicationBuilder app,...): app.UserSession();
Session1 で HttpContext.Session
を使用します。コントローラーusing Microsoft.AspNetCore.Http; public class HomeController:Controller { public IActionResult Index() { HttpContext.Session.SetString("code","123456"); return View(); } public IActionResult About() { ViewBag.Code=HttpContext.Session.GetString("code"); return View(); } }を挿入して、複雑な
オブジェクト
を格納するときに、オブジェクト を json 文字列
にシリアル化して格納できます。public static class SessionExtensions { public static void SetObjectAsJson(this ISession session, string key, object value) { session.SetString(key, JsonConvert.SerializeObject(value)); } public static T GetObjectFromJson<T>(this ISession session, string key) { var value = session.GetString(key); return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value); } }
var myComplexObject = new MyClass(); HttpContext.Session.SetObjectAsJson("Test", myComplexObject); var myComplexObject = HttpContext.Session.GetObjectFromJson<MyClass>("Test");SQL Server または RedisStorage を使用します
1、SQL Server参照 "Microsoft.Extensions.Caching.SqlServer": "1.0.0" を追加します
Inject:// Microsoft SQL Server implementation of IDistributedCache. // Note that this would require setting up the session state database. services.AddSqlServerCache(o => { o.ConnectionString = "Server=.;Database=ASPNET5SessionState;Trusted_Connection=True;"; o.SchemaName = "dbo"; o.TableName = "Sessions"; });2、Redis参照「Microsoft.Extensions.Caching.Redis」を追加します: "1.0.0"インジェクション:
// Redis implementation of IDistributedCache. // This will override any previously registered IDistributedCache service. services.AddSingleton<IDistributedCache, RedisCache>();【関連する推奨事項】1.
ASP の無料ビデオ チュートリアル
2.以上がAsp.net がセッションをどのように使用するかを分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。