Net Core 中WebAPI有关 Session的设置,及获取
步骤一: 在Startup 文件中做相应的设置
ConfigureServices方法里添加
//ConfigureServices添加: services.AddSession(options =>
{
options.Cookie.Name = ".AdventureWorks.Session";
options.IdleTimeout = System.TimeSpan.FromSeconds();//设置session的过期时间
options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
});
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddHttpContextAccessor();
#region 跨域
services.AddCors(options =>
options.AddPolicy("AllowSameDomain",
builder => builder.WithOrigins().AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin().AllowCredentials()));
#endregion
//HttpContextAccessor 默认实现了它简化了访问HttpContext
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
Configure方法里面添加
app.UseSession();//UseSession配置在UseMvc之前
二 在具体的Control配置相应数据
1. 配置 并获取httpcontext
示例:
public class HomeController : Controller
{
private IHttpContextAccessor _accessor;
public HomeController(IHttpContextAccessor accessor)
{
_accessor = accessor;
}
public IActionResult Index()
{
var httpcontext = _accessor.HttpContext;
return View();
}
}
2. 写SessionHelper类
public class SessionHelper
{
private IHttpContextAccessor _accessor; private ISession _session ;
private IRequestCookieCollection _requestCookie ;
private IResponseCookies _responseCookie;
public SessionHelper(HttpContext context)
{
_session = context.Session;
_requestCookie = context.Request.Cookies;
_responseCookie = context.Response.Cookies;
}
/// <summary>
/// 设置session值
/// </summary>
/// <param name="session"></param>
/// <param name="key">键</param>
/// <param name="value">值</param>
public void SetSession(string key, string value)
{
var bytes = System.Text.Encoding.UTF8.GetBytes(value);
_session.Set(key, bytes);
}
/// <summary>
/// 获取Session值
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
public string GetSession(string key)
{
Byte[] bytes;
_session.TryGetValue(key, out bytes);
var value = System.Text.Encoding.UTF8.GetString(bytes); if (string.IsNullOrEmpty(value))
{
value = string.Empty;
}
return value;
}
///// <summary>
///// 设置本地cookie
///// </summary>
///// <param name="key">键</param>
///// <param name="value">值</param>
///// <param name="minutes">过期时间</param>
//public void SetCookies(string key,string value,int day = 1)
//{
// _responseCookie.Append(key, value, new CookieOptions
// {
// Expires = DateTime.Now.AddDays(day)
// }) ;
//}
//public void DeleteCookies(string key)
//{
// _responseCookie.Delete(key);
//}
//public string GetCookiesValue(string key)
//{
// _requestCookie.TryGetValue(key, out string value);
// if (string.IsNullOrEmpty(value))
// {
// value = string.Empty;
// }
// return value;
//}
}
3. 方法里调用sessionHelper
var httpContext = _accessor.HttpContext;
SessionHelper session = new SessionHelper(httpContext);
string key = "王明";
string value = "2020年 大运年";
//设置session值
session.SetSession(key, value);
//获取session值
session.GetSession(key);
Net Core 中WebAPI有关 Session的设置,及获取的更多相关文章
- Python Flask,cookie,session ,设置、获取、删除
使用Response类的set_cookie()方法可以设置cookie: Response.set_cookie( key, //键 value='', //值 max_age=None, //秒为 ...
- asp.net core中Microsoft.AspNet.Session的使用
1.通过nuget/修改project.json引用 2.引用存储session的媒介,如内存.数据库.redis等 "Microsoft.AspNetCore.Session": ...
- js中如何对时间进行设置
js中如何对时间进行设置 Js获取当前日期时间及其它操作var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getF ...
- ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
- 你注意到 .Net Framework 和 .Net Core 中使用 Session 的区别了吗?
起因 在测试一个例子时发现的问题,这个示例实现的功能是刷新页面也能保持表格锁定列的状态,先看下页面的完成效果: 测试中发现,几乎相同的代码: 在 FineUIMvc(Net Framework)下没有 ...
- 在 ASP.NET CORE 中使用 SESSION (转载)
Session 是保存用户和 Web 应用的会话状态的一种方法,ASP.NET Core 提供了一个用于管理会话状态的中间件.在本文中我将会简单介绍一下 ASP.NET Core 中的 Session ...
- 第十六节:Asp.Net Core中Session的使用、扩展、进程外Session
一. 简介 关于Session的原理可参照Asp.Net版本Session的文章,去查阅. 1. 普通用法 (1).通过Nuget引入[Microsoft.AspNetCore.Http]程序集,Co ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
- 在 ASP.NET CORE 中使用 SESSION
Session 是保存用户和 Web 应用的会话状态的一种方法,ASP.NET Core 提供了一个用于管理会话状态的中间件.在本文中我将会简单介绍一下 ASP.NET Core 中的 Session ...
随机推荐
- 2019牛客暑期多校第六场题解ABDJ
A.Garbage Classification 传送门 题意:给你两个串,第一个串s由小写字母组成,第二个串t由dwh组成,长度为26,分别表示字母a到z代表的字符.现在要你判断: 如果字符串中‘h ...
- js 日期增减
js 的 Date 对象提供了许多方法,可以获取日期的年.月.日等信息,也可以修改年.月.日 日期的增减可以使用setFullYear().setMonth().setDate() 等方法 exp: ...
- Ubuntu 19.10 安装 jupyter
安装pip3 ubuntu 19.10 已经没有python了,取代的是python3. 执行sudo apt install python3-pip安装pip3 安装jupyter 执行sudo p ...
- Spring学习记录3——Spring AOP
SpringAOP基础 AOP简介: AOP是Aspect Oriented Programing的简称,翻译为“面向切面编程”.它适用于具有横切逻辑的应用场合,如性能检测,访问控制,事务管理及日志记 ...
- ReactNative: 将自定义的ReactNative组件制作成第三方库的详细流程(制作-->发布)
一.简介 在讲本篇博文之前,需要你熟知怎么自定义ReactNative组件,然后才好学习将自定义的ReactNative组件制作成第三方库.本文中的自定义的ReactNative组件LoginMana ...
- 第五篇:python购物车小程序开发demo
功能:自定义工资水平,可选商品加购余额实时提醒用到的知识点:列表.if多分支.循环.高亮输出未解决bug删除商品后不能自动退出 代码如下: if shopping_list: shopping_lis ...
- VirtualBox扩充磁盘&清空安装包
1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...
- CAS是什么
CAS是什么? 比较并交换 例子1: public class ABADemo1 { public static void main(String[] args) { AtomicInteger at ...
- 频繁插入(insert)的业务,用什么存储引擎更合适? | 数据库系列(转)
本文来自微信公众号 继续回答星球水友提问: 沈老师,MyISAM只支持表锁,但网上文章却说,在并发插入量比较大的时候,比较适合使用MyISAM,这矛盾吗? 这个问题,涉及MySQL表锁的一些细节,借着 ...
- mysql数据库的备份与数据恢复
一.定时备份数据库 前段时间工作中搭建了HttpRunnerManager的接口自动化测试平台,由于平台中没有提供用例下载的功能及权限管理功能,自己也不会写前端,于是就想了办法,那就是备份数据库,如 ...