网站抓取qq号码原理,惠州营销型网站建设,图片制作软件哪个好用,响应式网站建设服务商B/S架构程序可通过Cookie、Session、JWT、证书等多种方式认证用户身份#xff0c;虽然之前测试过用户登录代码#xff0c;也学习过开源项目中的登录认证#xff0c;但其实还是对身份认证疑惑甚多#xff0c;就比如登录验证后用户信息如何保存、客户端下次连接时如何获取用户… B/S架构程序可通过Cookie、Session、JWT、证书等多种方式认证用户身份虽然之前测试过用户登录代码也学习过开源项目中的登录认证但其实还是对身份认证疑惑甚多就比如登录验证后用户信息如何保存、客户端下次连接时如何获取用户信息等这与使用Winform的身份认证方式差别还是挺大的。 学习了挺久的ASP.NET Core及layui最终还是想写个完整的程序身份认证是程序的基本功能无论如何都省略不掉的。准备学习并测试常用的身份认证方式既熟悉相关概念也为后续评估选择身份认证方式提供支撑。 先学习相对简单的基于Cookie的身份认证方式本文对照参考文献1-4实现最简单的登录、跳转主页面、登录功能(从其中抄了不少代码)概念什么的后续文章中再边学习边记录。 VS2022创建基于MVC的Web项目在Program.cs文件中增加以下代码
...
...
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(options {options.LoginPath /Account/Login;options.Cookie.Name CookiesLoginText;options.ExpireTimeSpan TimeSpan.FromMinutes(10);options.SlidingExpiration true;});
var app builder.Build();
...
...
app.UseRouting();app.UseAuthentication();//增加的代码
app.UseAuthorization();//增加的代码app.MapControllerRoute将项目自带的HomeController.cs文件的Index页面作为程序主页面修改页面内容显示登录用户名及登出链接并给与HomeController类Authorize特性这样直接访问Index页面会因没有通过身份认证而跳转到登录页面。新增AccountController类定义登录、登出函数并在登录函数中用户身份验证通过后调用HttpContext.SignInAsync将信息保存到Cookie中代码主要参考自参考文献1仅微调或简化控制器类中可调用User属性获取当前用户信息。
public async TaskIActionResult Login(string name, string password)
{if (namegc_2299 password123456){var claimIdentity new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);claimIdentity.AddClaim(new Claim(ClaimTypes.Name, name));await base.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimIdentity));return RedirectToAction(Index, Home);}else{return View();}
}public async TaskIActionResult Logout()
{await base.HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);return RedirectToAction(Login, Account);
}最后是程序运行效果启动程序后显示登录页面。 用户登录成功后跳转到主页面并在主页面中显示当前用户登录名同时在浏览器的Cookie中可以看到当前用户的Cookie数据。 点击退出登录按钮返回登录页面此时客户端浏览器中的Cookie也被清空。 本文主要以及其简单的方式学习并验证了基于Cookie的身份认证方式后续还会进一步学习各种数据结构及属性的用途。
参考文献 [1]https://blog.csdn.net/sD7O95O/article/details/134724623 [2]https://www.cnblogs.com/itjeff/p/16427423.html [3]https://blog.csdn.net/weixin_68436326/article/details/132930540 [4]https://www.cnblogs.com/vic-tory/p/18237065 [5]https://blog.csdn.net/qq_27337291/article/details/123418867