在ASP.NET Core Web API中,会话值始终为null

时间:2018-11-30 05:24:30

标签: session asp.net-core-2.0

我正在尝试将值存储在asp.net核心Web api项目中的会话中。我已经引用了以下链接以将值存储在会话中。 https://andrewlock.net/an-introduction-to-session-storage-in-asp-net-core/

但是我总是在获得会话值时得到null。

2 个答案:

答案 0 :(得分:1)

您需要提供有关无效代码的更多详细信息。但基本上,您可以参考以下步骤:

  1. 添加ASP.NET Core 2.0 Web API应用程序。
  2. 安装Microsoft.AspNetCore.Session NuGet软件包。
  3. 修改您的Startup.cs,在ConfigureServices函数中调用AddDistributedMemoryCacheAddSessio n方法,并在Configure函数中添加UseSession方法:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    
        services.AddDistributedMemoryCache();
        services.AddSession();
    }
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseSession();
        app.UseMvc();
    }
    
  4. 在控制器中获取/设置会话(使用Microsoft.AspNetCore.Http;):

    [HttpGet("setSession/{name}")]
    public IActionResult setsession(string name)
    {
        HttpContext.Session.SetString("Name", name);
        return Ok("session data set");
    }
    [HttpGet("getSession")]
    public IActionResult getsessiondata()
    {
        var sessionData = HttpContext.Session.GetString("Name");
        return Ok(sessionData);
    }
    
  5. 然后,您可以对http://localhost:xxxxx/api/ControllerName/setSession/derek进行api调用以设置会话,并调用http://localhost:xxxxx/api/ControllerName/getSession以获得会话数据。

答案 1 :(得分:0)

以下教程将帮助您在ASP .Net Core Web API应用程序的服务器端设置会话值。

Tutorial for Session in API Core