.net core 基于Claim登录验证

编程入门 行业动态 更新时间:2024-10-09 20:29:46

.<a href=https://www.elefans.com/category/jswz/34/1770819.html style=net core 基于Claim登录验证"/>

.net core 基于Claim登录验证

网站,首先需要安全,实现安全就必须使用登录验证, core 基于Claim登录验证就很简单使用。

Claim是什么,可以理解为你的身份证的中的名字,性别等等的每一条信息,然后Claim组成一个ClaimIdentity 就是组成一个身份证。

那么我们 core 是如何基于Claim实现登录验证呢

首先我们需要在startup中配置:

        public void ConfigureServices(IServiceCollection services){           services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, o =>{o.LoginPath = new PathString("/Login"); // 登录页面的urlo.AccessDeniedPath = new PathString("/Login");//没有授权跳转的页面o.ExpireTimeSpan = TimeSpan.FromHours(0.5); // cookies的过期时间});
}
        public void Configure(IApplicationBuilder app, IHostingEnvironment env){app.UseAuthentication();   //添加中间件}

然后我们需要在我们的登录用户名和密码的表中添加这个字段

        /// <summary>/// 属性标识此身份验证模块实现的身份验证类型/// </summary>public string AuthenticationType { get; internal set; }

然后我们在登录的控制器写登录方法

        /// <summary>/// 登录/// </summary>/// <param name="name">用户名</param>/// <param name="password">密码</param>/// <returns></returns>[HttpGet("login/{name}/{password}")]public async Task<IActionResult> Login(string name, string password){var user = userLogicHandler.GetUsers(name, password);if (user !=null){user.AuthenticationType = CookieAuthenticationDefaults.AuthenticationScheme;var identity = new ClaimsIdentity(user.AuthenticationType);identity.AddClaim(new Claim(ClaimTypes.Name, user.UserId));await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(identity));return Ok(200);}else{return Ok(500);}}

登录的时候上传密码和名称到服务器中,如果匹配,那么服务器会将ClaimsIdentity保存到客户端中的cookies中,然后每次请求需要验证的控制器的时候就会验证是否有ClaimIdentity。

    [Hidden][Route("Home")][Authorize]public class HomeController : Controller{/// <summary>/// 主界面/// </summary>/// <returns></returns>
        [HttpGet]public IActionResult Home(){return View();}

如上,加上[Authorize] 特性之后,每次请求该控制器的方法都会验证。

基于Claim的登录验证就是这些,如果有错误请指正。

转载于:.html

更多推荐

.net core 基于Claim登录验证

本文发布于:2024-02-06 19:44:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751097.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:net   core   Claim

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!