真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Asp.net如何使用Session的方法

Asp.net如何使用Session的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

成都創(chuàng)新互聯(lián)公司專注于門源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供門源營銷型網(wǎng)站建設(shè),門源網(wǎng)站制作、門源網(wǎng)頁設(shè)計(jì)、門源網(wǎng)站官網(wǎng)定制、微信小程序開發(fā)服務(wù),打造門源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供門源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

前言

2017年就這么悄無聲息的開始了,2017年對(duì)我來說又是特別重要的一年。

元旦放假在家寫了個(gè)Asp.net Core驗(yàn)證碼登錄, 做demo的過程中遇到兩個(gè)小問題,第一是在Asp.net Core中引用dll,以往我們引用DLL都是直接引用,在Core里這樣是不行的,必須基于NuGet添加,或者基于project.json添加,然后保存VS會(huì)啟動(dòng)還原類庫。

第二就是使用Session的問題,Core里使用Session需要添加Session類庫。

添加Session

在你的項(xiàng)目上基于NuGet添加:Microsoft.AspNetCore.Session。

修改startup.cs

在startup.cs找到方法ConfigureServices(IServiceCollection services) 注入Session(這個(gè)地方是Asp.net Core pipeline):services.AddSession();

接下來我們要告訴Asp.net Core使用內(nèi)存存儲(chǔ)Session數(shù)據(jù),在Configure(IApplicationBuilder app,...)中添加代碼:app.UserSession();

Session

1、在MVC Controller里使用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();
    }
}

2、如果不是在Controller里,你可以注入IHttpContextAccessor

public class SomeOtherClass
{
   private readonly IHttpContextAccessor _httpContextAccessor;
   private ISession _session=> _httpContextAccessor.HttpContext.Session;

   public SomeOtherClass(IHttpContextAccessor httpContextAccessor)
   {
      _httpContextAccessor=httpContextAccessor;       
   }

   public void Set()
   {
     _session.SetString("code","123456");
   }
  
   public void Get()
  {
     string code = _session.GetString("code");
   }
}

存儲(chǔ)復(fù)雜對(duì)象

存儲(chǔ)對(duì)象時(shí)把對(duì)象序列化成一個(gè)json字符串存儲(chǔ)。

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(this ISession session, string key)
  {
    var value = session.GetString(key);

    return value == null ? default(T) : JsonConvert.DeserializeObject(value);
  }
}
var myComplexObject = new MyClass();
HttpContext.Session.SetObjectAsJson("Test", myComplexObject);
var myComplexObject = HttpContext.Session.GetObjectFromJson("Test");

使用SQL Server或redis存儲(chǔ)

1、SQL Server

添加引用  "Microsoft.Extensions.Caching.SqlServer": "1.0.0"

注入:

// 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();

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)Asp.net如何使用Session的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞標(biāo)題:Asp.net如何使用Session的方法
當(dāng)前地址:http://weahome.cn/article/josogo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部