.NET CORE cookie
.net core 有自己的cookie机制,不需要单独写js进行实现 statup.cs 文件中找到Configure方法 //Cookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationScheme = "Cookie",// 验证方案名 AutomaticAuthenticate = true, ExpireTimeSpan = TimeSpan.FromSeconds(30)//cookie过期时间 AutomaticChallenge = true, AccessDeniedPath = new PathString("/System/Error") //访问拒绝跳到error页面 }); 页面选择登录状态保持,在登录成功之后设置cookie if (model.LoginState) { // cookie var identity = new ClaimsIdentity("Forms"); identity.AddClaim(new Claim(ClaimTypes.Sid, model.LoginId)); identity.AddClaim(new Claim(ClaimTypes.Rsa, model.Password)); identity.AddClaim(new Claim(ClaimTypes.Name, Convert.ToString(model.LoginState))); var principal = new ClaimsPrincipal(identity); HttpContext.Authentication.SignInAsync("Cookie", principal, new AuthenticationProperties { IsPersistent = true });//是否解析 } 解析cookie // cookie string loginId = CommonConstant.S_SPACE; string password = CommonConstant.S_SPACE; bool loginState = false; if (null != User.FindFirst(ClaimTypes.Sid) && null != User.FindFirst(ClaimTypes.Rsa) && null != User.FindFirst(ClaimTypes.Name)) { loginId = User.FindFirst(ClaimTypes.Sid).Value; password = User.FindFirst(ClaimTypes.Rsa).Value; loginState = Convert.ToBoolean(User.FindFirst(ClaimTypes.Name).Value);// ログイン状態 } 如果statup.cs文件中设置path //Cookie app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationScheme = "Cookie", AutomaticAuthenticate = true, ExpireTimeSpan = TimeSpan.FromSeconds(30)//cookie过期时间 LoginPath = "/account/login" // 登录页 }); 后台login动作加入注解[AllowAnonymous],在保持状态之后页面可以直接跳转到login动作中 logout时HttpContext.Authentication.SignOutAsync("member"); // Startup.cs中配置的验证方案名
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了