.NET Core Cookie身份验证完全指南:原理、配置与实战
下面是一篇围绕“.Net Core — Cookie 身份验证”展开的实操型博文以真实从业者的口吻写不跑题、不说教、直接给方案。做了几年 .Net 后端Cookie 身份验证一直是被反复问到、也反复踩坑的一块。很多人一上来就选 JWT觉得无状态很高级可到了传统 Web 应用里Cookie 验证依然是那个最顺手、也最稳的方案。这篇文章就把 .Net Core / .Net 5 里的 Cookie 身份验证完整拆一遍从注册服务、登录/退出、Claims 构造到常见故障排查全部覆盖。适合刚接触认证授权的初学者也适合被 401、302 重定向循环折腾过的老手。我先说结论Cookie 验证不是过时的老古董它解决的是“浏览器场景下如何让服务器记住你是谁”这个问题。你只要还在写 MVC、Razor Pages、Blazor Server 这类服务端渲染应用Cookie 验证就是默认首选。就算你在写前后端分离的 Web APICookie 验证在很多内部系统里也同样适用关键是搞清楚它和 JWT、Session 之间的边界。1. 为什么还需要 Cookie 身份验证1.1 Cookie 验证、JWT、Session 验证到底差在哪很多初学者会把“Cookie 验证”和“Session 验证”搞混。这里我说个最直接的区分方式Session 是一种服务端状态存储机制它可以配合 Cookie 使用也可以不配合 Cookie 使用而 Cookie 验证是一种基于浏览器自动携带票据的认证模式票据本身可以加密后存在 Cookie 里也可以只是存一个 SessionId。在 .Net Core 里默认的 Cookie 验证会把整个身份票据加密后写进 Cookie服务端不保存任何会话状态这一点和传统 Session 有着本质区别。JWT 和 Cookie 验证的差别更明显。JWT 的 Token 通常放在 Authorization 请求头里由前端 JS 手动保存、手动附加Cookie 验证则是浏览器自动在每次请求时带上 Cookie服务端自动解密校验。一个是“手动挡”一个是“自动挡”。我做个类比Cookie 验证像一张带照片和有效期的小区门禁卡保安一眼能看出你是谁、能不能进JWT 像一张盖了公章的纸质通行证上面写了身份信息保安只需要验证公章真假不需要和总部确认。Cookie 验证的优势就是浏览器原生支持、自动处理、用户无感知而且服务端可以通过滑动过期、撤销票据等机制随时让身份失效。JWT 虽然天然适合跨域、移动端、多服务共享但一旦发出就很难主动收回过期前它就是“通行证”。1.2 什么场景下 Cookie 验证最稳妥我这里直接给建议都是实际项目里验证过的选型经验。如果你的后端是纯 API且客户端是 App、小程序、第三方开发者用 JWT 更合理因为客户端不一定具备 Cookie 管理能力。但如果客户端是浏览器不管前端是 Razor 服务端渲染还是 Vue/React 静态站只要前后端同域Cookie 验证都能稳定工作省掉一堆 Token 刷新、存储、防 XSS 的麻烦。还有一个容易被忽略的场景企业内部管理系统。这类系统通常没有复杂的跨域需求用户希望通过浏览器直接访问登录后一切自动恢复Cookie 验证就是最优解。你在 .Net Core 里用 AddAuthentication 加上 AddCookie十几行代码就能把完整的登录、授权、退出流程跑通这效率是 JWT 路线给不了的。我自己做过一个内部报表系统一开始用的 JWT后来因为“登录后刷新页面 Token 丢失”的问题来回折腾最后换成 Cookie 验证一行前端代码都没改问题直接消失。要记住任何需要浏览器频繁刷新页面的 Web 应用Cookie 验证都比 JWT 省心。2. 核心概念与配置项拆解2.1 认证方案AuthenticationScheme是怎么回事刚接触 .Net Core 认证的人第一次看到 AddAuthentication、AddCookie 里的字符串参数往往一头雾水。这个字符串就是“方案名”你可以理解成给门禁系统起个名字。默认的 Cookie 方案名是常量CookieAuthenticationDefaults.AuthenticationScheme它的值就是字符串Cookies。builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie();这里的逻辑是先声明“我们用的认证方案是 Cookie”然后注册 Cookie 方案的具体实现。如果暂时不指定默认方案很多地方会报错因为框架不知道你希望用哪一种方式来判断用户身份。多个方案同时存在也是可以的。比如有的接口希望用 JWT有的页面希望用 Cookie你可以在 AddAuthentication 里同时注册两个方案然后在 Controller 或 Policy 上显式指定用哪个。核心记住一点方案名是全局唯一的标识后续的 Challenge未认证跳转、Authenticate验证票据、SignIn登录写票据、SignOut退出都会以方案名为依据。2.2 CookieAuthenticationOptions 参数详解CookieAuthenticationOptions是 Cookie 验证的核心配置对象下面这些参数我逐个讲清楚因为大部分诡异问题都出在配置上。builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options { options.LoginPath /Account/Login; options.AccessDeniedPath /Account/Forbidden; options.ExpireTimeSpan TimeSpan.FromHours(2); options.SlidingExpiration true; options.Cookie.Name MyApp.Auth; options.Cookie.HttpOnly true; options.Cookie.SameSite SameSiteMode.Lax; options.Cookie.SecurePolicy CookieSecurePolicy.SameAsRequest; });LoginPath是用户未登录访问受保护资源时框架自动 302 跳转的登录页地址。默认值是/Account/Login但实际项目中很多系统登录页在/User/Login这里不改的话就会 404。AccessDeniedPath是用户已登录但没有权限时跳转的页面。不设置的话默认返回 403 状态码。实际体验中给用户一个友好的“无权限”页面比白屏 403 强得多。ExpireTimeSpan是身份票据的有效期。它是倒计时式的从签发那一刻开始计时2 小时后失效和 JWT 的 exp 逻辑一致。SlidingExpiration是滑动过期开关。开启后用户只要在有效期内发起了请求过期时间就自动顺延一个完整周期。比如有效期 2 小时用户在第 1小时 59 分访问了一次有效期重新变成 2 小时。这个参数要谨慎使用因为它和安全是矛盾关系用户长时间挂机不动票据不会过期安全性降低但对用户体验很友好。Cookie.HttpOnly设为 true 后浏览器里的 JS 无法读取该 Cookie能有效防 XSS 窃取票据。.Net Core 默认就是 true建议保持默认。Cookie.SameSite控制跨站请求时 Cookie 的携带策略。Lax是当前最通用的选择同站请求正常携带跨站顶级导航也会携带但跨站 AJAX/表单提交不携带。Strict最严格但会导致从外站链接点进来的首次访问不携带 Cookie体验偏差。None需要配合 HTTPS且会有 CSRF 风险除非有明确的跨域需求否则别用。Cookie.SecurePolicy决定 Cookie 是否只在 HTTPS 下传输。SameAsRequest表示请求是 HTTPS 就加 Secure 标记HTTP 请求则不加。开发环境用这个最方便生产环境如果全站 HTTPS建议直接Always。2.3 CookieAuthenticationEvents 到底能干什么这个容易被忽略但它是 Cookie 验证的“插件机制”。框架默认行为之外你想插一脚的地方都在这里。最常用的有三个事件OnRedirectToLogin默认情况下Ajax 请求未认证时会 302 跳到登录页前端拿到的是一段 HTML状态码还是 200非常坑。在这个事件里判断请求是不是 AJAX是的话直接返回 401 JSON。OnValidatePrincipal每次请求验证票据时触发。可以用来做“用户被禁用后立即失效”甚至做“单点踢出”。需要在票据里记录一个版本号或时间戳然后在事件里比对。OnSigningIn在票据写入 Cookie 之前触发。可以在这里给 Claims 临时追加信息或者做登录黑名单校验。3. 完整实操从注册服务到登录退出3.1 服务注册不同版本 .Net 的写法差异先看清楚.Net Core 3.1 和 .Net 5 用Startup.cs注册.Net 6 以后全都在Program.cs里写。我两种都列出来你对应自己的 SDK 版本抄。.Net 6 版本Program.csvar builder WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options { options.LoginPath /Account/Login; options.AccessDeniedPath /Account/Forbidden; options.ExpireTimeSpan TimeSpan.FromHours(2); options.SlidingExpiration true; options.Cookie.HttpOnly true; options.Cookie.SameSite SameSiteMode.Lax; }); var app builder.Build(); app.UseAuthentication(); app.UseAuthorization(); app.MapDefaultControllerRoute(); app.Run();.Net Core 3.1 / .Net 5 版本Startup.cspublic void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options { options.LoginPath /Account/Login; options.AccessDeniedPath /Account/Forbidden; options.ExpireTimeSpan TimeSpan.FromHours(2); options.SlidingExpiration true; }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints endpoints.MapDefaultControllerRoute()); }这里有个高频错误必须提醒忘了调用app.UseAuthentication()。很多新手注册完服务后登录页都写好了结果访问受保护接口永远 401原因就是认证中间件根本没被启用。它必须放在UseAuthorization()之前、UseRouting()之后顺序错了一样出问题。3.2 登录 Action从表单到写入 Cookie 的完整链路用户提交用户名密码后你校验通过下一步就是构建 ClaimsPrincipal 并调用 SignInAsync。很多人在这里犯迷糊Claims、ClaimsIdentity、ClaimsPrincipal 到底是什么关系我解释一下一个用户可以有多个身份比如“管理员身份”和“普通用户身份”每个身份带多个声明Claims声明就是“键值对”形式的信息片断比如“用户名张三”“角色Admin”。框架最终要的是一个 ClaimsPrincipal 对象里面至少包含一个 ClaimsIdentity这个 Identity 里至少有一个 Claim。下面是一个完整的登录 Action[HttpPost] public async TaskIActionResult Login(LoginViewModel model) { if (!ModelState.IsValid) return View(model); var user await _userService.ValidateUserAsync(model.UserName, model.Password); if (user null) { ModelState.AddModelError(, 用户名或密码错误); return View(model); } var claims new ListClaim { new Claim(ClaimTypes.Name, user.UserName), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(DisplayName, user.DisplayName), new Claim(Department, user.Department), new Claim(ClaimTypes.Role, user.Role) }; var claimsIdentity new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var claimsPrincipal new ClaimsPrincipal(claimsIdentity); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal); if (string.IsNullOrEmpty(model.ReturnUrl)) return RedirectToAction(Index, Home); return Redirect(model.ReturnUrl); }HttpContext.SignInAsync是关键动作。它会根据你注册的 Cookie 方案把 ClaimsPrincipal 序列化、加密、生成票据然后以 Set-Cookie 的形式写到浏览器。默认的加密方式用的是 Data Protection API密钥存在本机所以同一个应用部署在多台服务器时必须配置共享密钥存储比如持久化到 Redis 或共享文件否则会出现“在这台机器登录另一台机器不认”的诡异问题。Claims 的设计有几个实战原则。第一别把密码、身份证号这类敏感数据放进去因为 Claims 虽然加密了但应用的代码可以解密相当于明文。第二不要放变化频繁的数据比如“最后一次登录时间”因为票据是快照不会实时同步数据库。第三像部门、显示名这种展示型数据放进去能减少登录后每次查数据库的频率。3.3 受保护接口与匿名访问怎么配Controller 或 Action 上打[Authorize]就代表访问它需要已认证身份。没有认证时会触发挑战行为——默认跳转到 LoginPath。[Authorize] public class DashboardController : Controller { public IActionResult Index() { var userName User.Identity.Name; var displayName User.FindFirst(DisplayName)?.Value; return View(); } }[AllowAnonymous]放在某个 Action 上可以让它在整个 Controller 都是[Authorize]的情况下放行。比如登录页和注册页通常都用这个标签。角色授权用[Authorize(Roles Admin)]。用户访问时框架会检查票据里的 Role 声明是否匹配。这里有个细节如果用户的 Role 不在票据里即使数据库中他是 Admin也会被拒之门外。所以登录时一定要把角色写进 Claims。.cshtml 视图里也可以用User.Identity.IsAuthenticated判断是否登录用User.IsInRole(Admin)判断角色实现页面按钮的动态显示/隐藏。3.4 退出登录常见误区和正确姿势退出登录的代码很简单但要注意一个陷阱。[HttpPost] public async TaskIActionResult Logout() { await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); return RedirectToAction(Index, Home); }SignOutAsync会让服务器把票据标记为失效并在浏览器端删除 Cookie。这里必须提醒前端跳转到退出页面后别只做“清掉 localStorage”之类的操作因为票据在 Cookie 里不调用 SignOutAsyncCookie 就不会真正失效。还有一点Logout 建议用 POST 请求别用 GET。原因是防 CSRF——你不希望某个第三方页面放一个“退出登录”的链接或图片悄悄把用户的会话干掉。用 POST 防伪令牌才是正规做法。4. 常见问题与排查技巧实录4.1 高频故障速查表下面这个表是实际运维中最常遇到的几个问题以及对应的解决思路。现象根本原因解决办法请求一直 401登录页也打不开没有注册 Authentication 服务或没调用 UseAuthentication()检查 AddAuthentication AddCookie 是否注册app.UseAuthentication() 是否在管道正确位置已登录但刷新后又变成未登录ExpireTimeSpan 太短或 SlidingExpiration 没开适当拉长有效期按需开启滑动过期访问受保护资源跳到登录页登录后又跳回来形成重定向循环LoginPath 本身被 [Authorize] 挡住登录页的 Action 必须加 [AllowAnonymous]Ajax 请求被 302 跳转前端拿到的状态码是 200默认重定向行为不适合 API 场景通过 OnRedirectToLogin 事件判断 AJAX 请求返回 401 JSON多服务器部署后A 机登录 B 机不认Data Protection 密钥未共享配置 PersistKeysToFileSystem 或存到 Redis 等共享存储用户被禁用后已登录状态仍然有效票据未失效在 OnValidatePrincipal 事件中检查数据库禁用标记开发环境登录后Cookie 没有写入SameSite 或 SecurePolicy 配置不当开发环境用 SameSiteMode.LaxSecurePolicy 用 SameAsRequest登录成功但 User.Identity.Name 为空Claims 里没放 ClaimTypes.Name登录时加入 new Claim(ClaimTypes.Name, 用户名)4.2 一个必须掌握的技巧AJAX 401 改造很多系统前后端分离或者页面里有大量 jQuery / fetch 发起的 AJAX 请求。默认的 Cookie 验证对未认证的 AJAX 请求同样执行 302 跳转前端收到一段 HTML状态码却是 200业务逻辑完全没法判断“到底登录了没有”。下面这段事件处理就是标准解法.AddCookie(options { options.LoginPath /Account/Login; options.Events new CookieAuthenticationEvents { OnRedirectToLogin context { if (IsAjaxRequest(context.Request)) { context.Response.StatusCode StatusCodes.Status401Unauthorized; return Task.CompletedTask; } context.Response.Redirect(context.RedirectUri); return Task.CompletedTask; } }; }); static bool IsAjaxRequest(HttpRequest request) { return request.Headers[X-Requested-With] XMLHttpRequest || request.Headers[Accept].ToString().Contains(application/json); }这样改完前端的 axios 或 fetch 就能拿到标准的 401 状态码统一在响应拦截器里跳转登录页体验会顺畅很多。这也是我在实际项目里体会最深的一个改造点不设这个事件前后端联调时一定会被“200 200 但其实是登录页”这种问题坑一次。4.3 实测滑动过期到底是怎么生效的我建议你花五分钟做个小实验登录后打开浏览器控制台查看 Cookie 里的Expires时间。然后在失效前不断访问页面观察这个时间是否被持续延后——这就是滑动过期在起作用。但如果滑动过期配置不对会出现下面这种情况用户打开登录页输入账号密码提交后发现“登录已过期”。原因通常是用户填表时间超过有效期而登录页本身是匿名访问不会触发滑动过期刷新。解决思路是有效期设置要结合业务比如 2 小时起步同时登录页表单最好在提交前做个“存活检测”发现票据已过期就直接清理别让用户提交后又跳登录页。还有一种情况我特别提醒SlidingExpiration开启后如果用户在过期前恰好只有一次请求且这次请求恰好经过验票那么票据会顺延。但如果应用长期后台运行超过有效期后所有请求都会失败。这个设计是合理的因为它防止了“永久会话”。如果业务确实需要“记住我”功能建议单独设置更长的有效期而不是把滑动过期当成万能药。4.4 调试时一贯的排查思路抓 Cookie、看状态、查事件我第一次排查 Cookie 验证问题时全靠三个步骤打开浏览器开发者工具看 Application 面板里的 Cookie 是否存在看 Network 面板里请求头的 Cookie 值确认浏览器是否带上票据在 CookieAuthenticationEvents 里打日志确认框架有没有触发验票逻辑。这三步能解决九成问题。如果响应头里没有 Set-Cookie说明登录 Action 根本没成功调用 SignInAsync或者是 Claims 为空被框架拒绝写入。如果请求头有 Cookie 但服务端还是 401多半是解密失败检查 Data Protection 密钥是否完整、应用是否换了机器。最后分享一个我个人的习惯在 CookieAuthenticationOptions 里临时把Cookie.HttpOnly设为 false方便在浏览器控制台用 JS 查看票据内容但这个调试完必须改回来。生产环境查问题建议在服务器端看日志别直接把 HttpOnly 关了避免引入 XSS 风险。在我做过的项目里Cookie 身份验证一直是最稳、最顺手的那条路。它不花哨但足够可靠尤其是在传统 Web 应用和内部系统里。我个人建议能用框架默认行为解决的事就别自己造轮子该改事件的时候也别犹豫。把登录、退出、Claims 构造、失效策略这四个点控制好Cookie 验证基本不会再给你制造什么惊喜。

相关新闻

iOS视频与图片混合轮播组件实现:基于UICollectionView与AVPlayer的架构拆解

iOS视频与图片混合轮播组件实现:基于UICollectionView与AVPlayer的架构拆解

简介:面向iOS开发者的视频与图片混合轮播实现资源,基于Objective-C编程语言和Xcode工具链,适配社交媒体、电商、媒体播放等常见App场景。资源重点梳理两条技术路线:第一条基于UICollectionView自定义图片与视频两种Cell&#xff0…

2026/10/11 14:17:24 阅读更多 →
Oracle HRMS经典架构解析:能力驱动与灵活组织的底层实现

Oracle HRMS经典架构解析:能力驱动与灵活组织的底层实现

简介:本资源是一份聚焦Oracle人力资源管理数字化转型的PPT课件,面向HR信息化建设负责人、ERP实施顾问及企业IT管理者,系统阐述如何借助Oracle方案将HR职能从行政事务型升级为战略驱动型。课件共1个PPT文件(19.64MB)&am…

2026/10/11 14:17:24 阅读更多 →
Oracle EBS GL总账模块核心逻辑与实战排错指南

Oracle EBS GL总账模块核心逻辑与实战排错指南

简介:本资源是一份面向企业财务人员与Oracle EBS实施顾问的GL总账模块实操指南,聚焦日常账务处理核心流程,解决手工记账、审批控制、过账执行等关键操作问题。文档结构清晰,覆盖系统登录与职责选择、手工日志账(含账头…

2026/10/11 14:17:24 阅读更多 →

最新新闻

GCC四阶段实战:从hello.c到可执行文件的完整编译链

GCC四阶段实战:从hello.c到可执行文件的完整编译链

简介:这是一份面向软件开发初学者与Linux系统使用者的GCC编译器入门指南,聚焦C/C开发环境搭建与核心编译原理。资源以PDF形式呈现,内容覆盖GCC发展沿革、多语言支持能力、跨平台特性及与G的本质区别,重点澄清四大常见误区&#xf…

2026/10/11 15:09:55 阅读更多 →
OVITO数据管道实战:分子模拟轨迹可视化与Python批处理解析

OVITO数据管道实战:分子模拟轨迹可视化与Python批处理解析

简介:OVITO是分子动力学模拟结果可视化的常用工具,这份1个PDF文件(约2.14MB)的手册与总结面向使用LAMMPS开展材料、物理、化学等模拟研究的用户,帮助快速掌握从导入Dump文件到分析原子轨迹的完整流程。内容按三部分梳理…

2026/10/11 15:09:55 阅读更多 →
220V降压24V700mA交转直芯片WT5110

220V降压24V700mA交转直芯片WT5110

220V降压24V700mA交转直芯片WT5110WT5110 是一款适用于非隔离型 AC-DC 降压转换的芯片,支持宽输入电压范围(85VAC~265VAC,部分场景可扩展至 110VAC~265VAC), 可将 220V 交流电转换为稳定的 24V 直流输出,并…

2026/10/11 15:09:55 阅读更多 →
SQL Server AlwaysOn 集群添加只读副本:从裸机到可用组的完整实战指南

SQL Server AlwaysOn 集群添加只读副本:从裸机到可用组的完整实战指南

简介:这份文档面向 SQL Server 数据库管理员与运维工程师,聚焦在已有 Always On 可用性组集群中新增一个数据库节点的完整落地流程,适合具备一定故障转移群集基础、需要横向扩展只读副本或提升高可用能力的技术人员参考。资源包内共 1 个 doc…

2026/10/11 15:09:55 阅读更多 →
SHL真题截图结构化:从PNG到JSON的6步确定性流水线

SHL真题截图结构化:从PNG到JSON的6步确定性流水线

简介:本资源为SHL在线评估测试真题截图整理文档,面向IT、金融、咨询等行业的求职者及HR招聘从业者,助力高效备考数理逻辑、数据解读与商业分析类标准化测评。文档完整呈现22道典型题目及其参考答案(含9处错题标注)&…

2026/10/11 15:09:55 阅读更多 →
2027浙大EMBA提前批面试怎么准备?底层逻辑与实战策略全解析

2027浙大EMBA提前批面试怎么准备?底层逻辑与实战策略全解析

每年到了三四月份,总会有几位在企业里做到中高层的老朋友来找我聊同样的问题:2027年想试试浙大EMBA,提前批面试到底要不要报名?我的回答从来都很干脆——只要你自己评估下来基本条件达标,就一定要申。原因并不复杂&…

2026/10/11 15:08:55 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →