Asp.net Core 2.0 实现Cookie会话
与1.0版本相比微软做了一些调整。详细请参考官方文档,我这里就讲2.0的吧
1.首先要在 根目录下 Startup.cs 类中启用 cookie会话,有两处要配置
第一处在 public void Configure(IApplicationBuilder app, IHostingEnvironment env) 方法里
设置 app.UseAuthentication();
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
//启用资源文件访问
app.UseStaticFiles();
//启用cookie会话
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
第二处 在public void ConfigureServices(IServiceCollection services) 方法里
“你的cookie名称”--一定要一致。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
//services.Configure<IISOptions>(option=>{
// option.AuthenticationDisplayName="";
//});
services.AddCoreServices();
//设置cookie信息
services.AddAuthentication("你的cookie名称").AddCookie("你的cookie名称",Options=>{
Options.LoginPath="/WeChat/Login";//设置登录页,还有其他配置就不作介绍了
});
}
2.登录
2.0的登录作了调整 需要引用 using Microsoft.AspNetCore.Authentication; 此命名空间
public IActionResult Login(LoginViewModel model,string returnUrl = null)
{
//省略到数据库验证代码
............
//设置声明,从数据库读取,设置角色之类,详情请科普 mvc的Identity声明认证
var claims = new List<Claim>()
{
new Claim("userModel",JsonConvert.SerializeObject(model)),
//new Claim("Role",model.RoleName),
};
var userPrincipal = new ClaimsPrincipal(new ClaimsIdentity(claims, "声明的名称"));
//登陆
awiat HttpContext.SignInAsync("你的cookie名称", userPrincipal,new AuthenticationProperties
{
ExpiresUtc = DateTime.UtcNow.AddMinutes(900)//过期时间
});
if(returnUrl==null)
{
//重定向到首页
return RedirectToAction("Index", "Home");
}
//重定向到初始请求页
return Redirect(returnUrl);
}
3.退出
/// <summary>
/// 退出
/// </summary>
public IActionResult Logout()
{
await HttpContext.SignOutAsync("你的cookie名称");
//重定向到登录页
return RedirectToAction("Login", "Account");
}
好了,说完了。。。
Asp.net Core 2.0 实现Cookie会话的更多相关文章
- ASP.NET Core 2.0使用Cookie认证实现SSO单点登录
之前写了一个使用ASP.NET MVC实现SSO登录的Demo,https://github.com/bidianqing/SSO.Sample,这个Demo是基于.NET Framework,.NE ...
- ASP.NET Core 2.0 多应用实现Cookie共享
前言 .NET Core 2.0 发布之后,在Authentication中间件部分,相关API有不少改动(官方文档),本文主要讲的就是实现应用Cookie共享,对Cookie中间件使用不了解的可以去 ...
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- [译]ASP.NET Core 2.0 会话状态
问题 如何在ASP.NET Core 2.0中存储会话状态? 答案 创建一个空项目,修改Startup类的ConfigureServices()方法,添加会话状态服务和它后台的存储服务: public ...
- EF Core使用SQL调用返回其他类型的查询 ASP.NET Core 2.0 使用NLog实现日志记录 CSS 3D transforms cSharp:use Activator.CreateInstance with an Interface? SqlHelper DBHelper C# Thread.Abort方法真的让线程停止了吗? 注意!你的Thread.Abort方法真
EF Core使用SQL调用返回其他类型的查询 假设你想要 SQL 本身编写,而不使用 LINQ. 需要运行 SQL 查询中返回实体对象之外的内容. 在 EF Core 中,执行该操作的另一种方法 ...
- ASP.NET Core 3.0 入门
原文:ASP.NET Core 3.0 入门 课程简介 与2.x相比发生的一些变化,项目结构.Blazor.SignalR.gRPC等 课程预计结构 ASP.NET Core 3.0项目架构简介 AS ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
- .Net Core 2.0生态(3):ASP.NET Core 2.0 特性介绍和使用指南
ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
随机推荐
- 查询Oracle日志文件的方法
Oracle日志文件相信经常使用Oracle数据库的朋友都比较熟悉了,下面将为您介绍的是查询Oracle日志文件的几种方法,供您参考学习. 1.查询系统使用的是哪一组日志文件: select * fr ...
- 第8.32节 Python中重写__delattr__方法捕获属性删除
一. 引言 上节介绍了__delattr__方法在Python清除实例属性时被捕获执行,本节结合例子介绍重写__delattr__方法,并说明__delattr__方法执行的触发逻辑. 二. 重写__ ...
- Object.prototype.toString.call()为什么可以用来检测数据类型?
obj.toString()方法是用来干什么的 每一个对象都有一个toString()方法,默认情况下toString()被每一个Object对象继承,如果此方法未被重写,toString()返回&q ...
- SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器
SZhe_Scan碎遮:一款基于Flask框架的web漏洞扫描神器 天幕如遮,唯我一刀可碎千里华盖,纵横四海而无阻,是谓碎遮 --取自<有匪> 写在前面 这段时间很多时间都在忙着编写该项目 ...
- 补:冲刺Day2
每天举行站立式会议照片: 昨天已完成的工作: 各个成员在 Alpha 阶段认领的任务. 今天各个成员的任务安排. 冲刺Day1博客. 今天计划完成的工作: 成员 任务 高嘉淳 完成登陆.注册 覃泽泰 ...
- AcWing 407. 稳定的牛分配
大型补档计划 题目链接 题目看的有点晕(语文差) 总体来说就是让每头牛找个谷仓,不能超过容量,最小化每头牛在的谷仓在自己心目中排名的极差. 显然这个最优性问题不好做,但是转换为判定性问题这就是一个标准 ...
- vue 循环结构 v-for
循环结构 v-for 循环数组 用于循环取得数据,类似于js中for-in循环 ,其中in左侧为值,其名称可以自定义,in后为想要取出数据的变量名 运行可以得到结果 in左侧不仅仅只可以放一个值,不仅 ...
- mysqldump备份数据
create database test; use test; create table test(id int,name char(8)); insert into test values(1,'p ...
- 使用pdfobject.js
一.下载pdfobject.js 二.CSS样式 <style type="text/css"> html, body, #pdf_viewer { width: 10 ...
- 一位弱校选手的oi经历
锦瑟无端五十弦,一弦一柱思华年. 这只是一位不知道什么时候就要退役的oier在一节晚自习的时候写的无聊东西 曾经也想好好写一写自己的oi历程,也许会有人看,不过因为自己懒加上文笔差也一直没写,直到昨天 ...