Session ASP.NET核心Web API中的会话值始终为空

Session ASP.NET核心Web API中的会话值始终为空,session,asp.net-core-2.0,Session,Asp.net Core 2.0,我正在尝试将这些值存储在asp.net核心web api项目的会话中。我引用了下面的链接来存储会话中的值。 但是,在获取会话值时,我总是得到null。您需要提供有关不起作用的代码的更多详细信息。但基本上您可以参考以下步骤: 添加ASP.NET Core 2.0 web api应用程序 安装Microsoft.AspNetCore.Session NuGet软件包 修改Startup.cs,在ConfigureServices函数中调用AddDistributedMemoryCache和AddS

我正在尝试将这些值存储在asp.net核心web api项目的会话中。我引用了下面的链接来存储会话中的值。


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

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

  • 添加ASP.NET Core 2.0 web api应用程序
  • 安装Microsoft.AspNetCore.Session NuGet软件包
  • 修改Startup.cs,在ConfigureServices函数中调用
    AddDistributedMemoryCache
    AddSession
    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();
    }
    
  • 在控制器中获取/设置会话(使用Microsoft.AspNetCore.Http;):

  • 然后您可以对
    http://localhost:xxxxx/api/ControllerName/setSession/derek
    设置会话,并调用
    http://localhost:xxxxx/api/ControllerName/getSession
    获取会话数据

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


    这对我不起作用。每当有新请求传入时,所有值都为空。这就好像它不知道这些请求来自同一个人。我有一个在端口5000上运行的.Net核心API和一个在端口4200上运行的angular 5应用程序。同样的事情也发生在我身上。。。你有什么解决办法吗?
    [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);
    }