首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET Core中的会话

ASP.NET Core中的会话
EN

Stack Overflow用户
提问于 2022-02-10 18:50:37
回答 1查看 2.1K关注 0票数 3

我正在将一个ASP.NET MVC应用程序迁移到ASP.NET Core。

在ASP.NET MVC中,我使用一些Session变量来存储或获取以下值:

代码语言:javascript
复制
Session["UserID"] = user.UserName;
Session["Role"] = role[0].ROLE_DESCRIPTION;
ViewData["LEVEL"] = Session["LEVEL"];

但是在转换之后,我得到了一个错误:

名称“会话”在当前上下文中不存在

此外,我还需要在.cshtml文件中替换它:

代码语言:javascript
复制
var UserName = "@Session["Name"]";

在ASP.NET Core中有没有其他方法可以在不改变行为的情况下存储或获取这些变量的值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-11 06:22:29

您需要在配置文件中添加会话中间件。

代码语言:javascript
复制
public void ConfigureServices(IServiceCollection services)  
{  
     //........
    services.AddDistributedMemoryCache();  
    services.AddSession(options => {  
        options.IdleTimeout = TimeSpan.FromMinutes(1);//You can set Time   
    });  
    services.AddMvc();  
} 

public void ConfigureServices(IServiceCollection services)
{
    //......
    app.UseSession();
    //......
}

然后在你的控制器里,你可以

代码语言:javascript
复制
//set session 

HttpContext.Session.SetString(SessionName, "Jarvik");  
HttpContext.Session.SetInt32(SessionAge, 24);

//get session

ViewBag.Name = HttpContext.Session.GetString(SessionName);  
ViewBag.Age = HttpContext.Session.GetInt32(SessionAge); 
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71070698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档