.Net Core 学习使用Session、和Cookie验证身份
2024-10-02 03:34:31
一、使用Session
1.1 Status.cs 中配置
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.Cookie.Name = "haos.Session";
options.IdleTimeout = TimeSpan.FromHours();//设置session的过期时间
options.Cookie.HttpOnly = true;
options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; });
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseSession();
//在UseMvc前调用
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
1.2 session必须在浏览器中,调用才有效果。
二、Cookie验证身份
2.1 Status.cs 中配置
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication("haos")
.AddCookie("haos", (option) =>
{
option.LoginPath = "/Account/login";
option.LogoutPath = "/Account/logout";
option.ExpireTimeSpan = TimeSpan.FromDays();
option.AccessDeniedPath = new PathString("/Account/Login");
option.Cookie = new CookieBuilder() { Name = "haos.develop" };
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseAuthentication();
}
2.2 实现登录方法
public async Task LoginSignIn(object member)
{
var identity = new Claim[] {
new Claim(ClaimTypes.Name, ""),
new Claim(ClaimTypes.MobilePhone, ""),
new Claim(ClaimTypes.PrimarySid,""),
new Claim("id",""),
}; await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(new ClaimsIdentity(identity, "haos")),
new AuthenticationProperties()
{
ExpiresUtc = DateTime.UtcNow.Add(TimeSpan.FromDays()),
IsPersistent = true
});
}
最新文章
- JestClient
- MongoDB2.6 新特性
- MVC中 _ViewStart _Layout Index三个页面中的加载顺序
- ARM的一些基本概念
- 使用cocos2d-x v3.1开发小游戏(基本框架)
- UIButton 在UIScrollView里面 点击效果不明显的问题
- AFNetworking的原理与基本使用-b
- Go笔记-继承
- java_stream流
- [Swift]LeetCode306. 累加数 | Additive Number
- tensorflow,model,object_detection,训练loss先下降后递增,到几百万,解决tensorflow,model,object,detection,loss,incease
- Equal 路由类
- BZOJ3669[Noi2014]魔法森林——kruskal+LCT
- CentOS 配置集群机器之间SSH免密码登录
- python之路,正则表达式
- FPGA内部动态可重置PLL讲解(二)
- 关于jsp,javascript,php等语言
- 如何禁止ping
- web_01Java ee实现登陆注册功能
- EditText中inputType详解
热门文章
- redis zincrby zadd 遇到的问题
- IDisposeable 最佳实现
- Win8 Metro(C#)数字图像处理--2.52图像K均值聚类
- JavaScript生成树形菜单(递归算法)
- 零元学Expression Blend 4 - Chapter 45 ListBox里的物件不能换行吗?
- jdbc连接oracle数据库字符串
- UWP的TextBox和PasswordBox使用输入范围更改触摸键盘InputScope
- Android零基础入门第77节:Activity任务栈和启动模式
- 一定要在commit之前做RAR备份,这样在出问题的时候,可以排除别人代码的干扰
- ML:吴恩达 机器学习 课程笔记(Week1~2)