.net core 登录验证
2023-09-11 14:21:21 时间
功能:登录后,才能访问后续页面。
否则跳转到登录页
一,startup
public void ConfigureServices(IServiceCollection services) { services.AddSession(); services.AddControllersWithViews(); //添加 身份验证 服务 services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme). AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o => { o.LoginPath = new PathString("/Home/Login");// 登录页面的url o.AccessDeniedPath = new PathString("/Login");//没有授权跳转的页面 o.ExpireTimeSpan = TimeSpan.FromHours(0.5); // cookies的过期时间 }); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseAuthentication(); //登录验证,要放在UseAuthorization之前! app.UseAuthorization(); }
二,登录功能
Login是登录页
LoginAction是登录按钮触发的方法
LogoutAction是注销
public class HomeController : Controller { private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Login() { return View(); } public IActionResult LoginAction(UserVO entity) { ClaimsIdentity identity = new ClaimsIdentity("Forms"); identity.AddClaim(new Claim(ClaimTypes.Sid, entity.account)); identity.AddClaim(new Claim(ClaimTypes.Name, entity.pwd)); ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(identity); HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal); return RedirectToAction("Index", "Email"); } public IActionResult LogoutAction() { HttpContext.SignOutAsync().Wait(); return RedirectToAction("Login", "Home"); } }
跳转页 -- [Authorize] 代表需要验证,
直接访问时,看看是不是会返回登录页
[Authorize] public class EmailController : Controller { public IActionResult Index() { return View(); } }
相关文章
- 探讨NET Core数据进行3DES加密或解密弱密钥问题
- abp(net core)+easyui+efcore实现仓储管理系统——组织管理升级之上(六十一)
- 学习ASP.NET Core Blazor编程系列三十——JWT登录(4)
- 学习ASP.NET Core Blazor编程系列二十六——登录(5)
- 学习ASP.NET Core Blazor编程系列二十二——登录(1)
- 学习ASP.NET Core Blazor编程系列十七——文件上传(上)
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之二(五十)
- 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
- .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
- 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core
- 项目开发中的一些注意事项以及技巧总结 基于Repository模式设计项目架构—你可以参考的项目架构设计 Asp.Net Core中使用RSA加密 EF Core中的多对多映射如何实现? asp.net core下的如何给网站做安全设置 获取服务端https证书 Js异常捕获
- MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 【23种设计模式】中介者模式(Mediator Pattern) .Net Core实现
- 【.Net Core】微服务——Ocelot(1):基础介绍及集成
- .NET Core Roadmap
- Asp.net Core 3.1 之NLog使用扩展
- 通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?
- 【ASP.NET】Global.asax与Web.config
- 以Windows服务方式运行ASP.NET Core程序