当前位置: 首页 > article >正文

学习ASP.NET Core的身份认证(基于Session的身份认证1)

  ASP.NET Core使用Session也可以实现身份认证,关于Session的介绍请见参考文献5。基于Session的身份认证大致原理就是用户验证成功后将用户信息保存到Session中,然后在其它控制器中从Session中获取用户信息,用户退出时清空Session数据。百度基于Session的身份认证也有更高级的应用,如参考文献6,不过本文先学习并实践最简单的用法,后续再学习更进一步的用法。
  在Program文件内先调用builder.Services.AddSession函数添加Session服务,可以同时添加如下设置,主要是关于Cookie相关配置(详见参考文献5的Session与Cookie的区别)及过期时间IdleTimeout。然后调用app.UseSession()启用服务,最简单的用法就是这两句。

...
...
builder.Services.AddDistributedMemoryCache();
builder.Services.AddSession(options =>
        options.IdleTimeout = TimeSpan.FromDays(1)
    );
...
...
app.UseSession();

在这里插入图片描述
  然后在登录函数中用户验证通过后调用HttpContext.Session.SetString或者Set函数保存用户信息,登出函数中调用HttpContext.Session.Clear清空数据。

if (name=="gc_2299" && password=="123456")
{
    HttpContext.Session.SetString("user", name);
    return RedirectToAction("Index", "Home");
}

  在其它控制器中获取用户信息时,最简单的用法如下所示:

if (!HttpContext.Session.IsAvailable ||
    string.IsNullOrEmpty(HttpContext.Session.GetString("user")))
{
    return RedirectToAction("Login", "Account");
}

ViewData.Add("CurUser", HttpContext.Session.GetString("user"));
return View();

  程序运行效果与基于Cookie的身份认证类似,在此不再重复截图,后续继续学习更深入的用法。

参考文献:
[1]https://www.cnblogs.com/boonya/p/18557417
[2]http://www.pzhseo.com/article/dipjeg.html
[3]https://cloud.tencent.com/developer/article/1783650
[4]https://blog.csdn.net/ousetuhou/article/details/135392012
[5]https://blog.csdn.net/weixin_42217767/article/details/92760353
[6]https://www.cnblogs.com/leafroc/p/18347413


http://www.kler.cn/a/415145.html

相关文章:

  • 关于VNC连接时自动断联的问题
  • 华为IPD流程学习之——深入解读123页华为IPD流程体系设计方法论PPT
  • NAT:连接私有与公共网络的关键技术(4/10)
  • Windows修复SSL/TLS协议信息泄露漏洞(CVE-2016-2183) --亲测
  • BUUCTF—Reverse—不一样的flag(7)
  • 损失函数分类
  • 使用命令行创建一个简单的 Maven Web 应用程序
  • MindAgent部署(进行中.....)
  • 23种设计模式-工厂方法(Factory Method)设计模式
  • sqli_labs-10,11,12 --详细解析
  • 叮!您的RK3568系统镜像备份方法请查收
  • 可视化建模以及UML期末复习篇----相关软件安装
  • web博客系统的自动化测试
  • MEASURING INTANGIBLE CAPITAL WITH MARKET PRICES论文阅读
  • MySQL面试攻略:从基础到高级,全面解析
  • 【微服务】Nacos配置管理
  • docker-mysql
  • 分布式光伏与储能协调控制策略的应用分析
  • 简单线性DP
  • 通过docker overlay2 目录名查找容器名和容器ID
  • 架构第十一章:zabbix
  • Vue 3 KeepAlive 教程
  • Unity3d C# 实现一个基于UGUI的自适应尺寸图片查看器(含源码)
  • 【CSS】设置文本超出N行省略
  • 第六篇:其他窗口部件 QLineEdit
  • 更快更省更划算:了解亚马逊云科技自研芯片