ChallengeResult
ChallengeResult的作用在ASP.NET Core的身份认证流程中,ChallengeResult 类的作用是作为一种特殊的返回结果类型,用于处理未经授权的HTTP请求。当控制器或中间件遇到需要进行身份验证的情况时(例如,一个受保护的API或路由要求用户登录),返回 ChallengeResult 就会触发框架内置的身份验证管道来执行相应的身份验证流程。 当控制器方法返回 ChallengeResult 时,可以指定相关的身份认证方案(如Cookie、JWT或其他自定义认证方案) ASP.NET Core身份认证中间件接收到 ChallengeResult 后,会按照配置的认证策略和Challenge参数来决定如何处理。对于基于浏览器的Web应用,这通常意味着重定向到登录页面或者显示身份提供者(如OAuth/OIDC)的授权界面。 用户完成登录过程后,身份认证系统将验证用户的凭据,并可能发放一个身份验证票据(如cookie或JWT token)。 最后,用户成功登录并验证后,系统将会自动重定向回之前尝试访问但未授权的原始URL。 ChangeResult的具体细节继承A ...
Jenkins基于角色的授权策略
Jenkins的授权策略有非常多种,我习惯用基于角色的授权策略,这里记录下配置的一些细节。 我使用的Jenkins版本:2.375.2 安装插件进入插件安装页面:Dashboard → Manage Jenkins → Plugin Manager → Available plugins,搜索 “Role-based”,选择 Role-based Authorization Strategy 插件,点击 Download now and install after restart 进行安装。 配置授权策略进入配置全局安全页面:Dashboard → Manage Jenkins → Configure Global Security, 修改 Authorization 配置,选择 Role-Base Strategy,点击 Apply 按钮应用配置。 创建角色插件提供了三种类型的角色。 类型 备注 全局角色(Global roles) 适用于管理员,可以跨越全部项目进行授权 项目角色(Item roles) 适用于给用户按项目分配权限的场景 节点角色(Age ...
OpenIddict学习实践小结
Openiddict开源的身份认证和授权库,可用它见OAuth 2.0/OpenID Connect功能集成到应用程序中。 另一个流行的库是IdentityServer4,但其已另起新项目变为收费的了,旧IdentityServer4项目不再维护,Openiddict是一个很好的替代库。 本次学习只是简单的了解下如何将Openiddict应用到在asp.net core应用程序中,目标是搭建一个独立的身份认证服务器,为各种不同类型的客户端提供身份认证服务。本文主要记录次此学习实践的一些细节总结。 本次实践完整的源码地址:( https://github.com/izanhzh/amos-learn/tree/main/OpeniddictTest )注:源码仓库未公开 服务端 创建一个asp.net core web应用项目: OpeniddictTest.Server,将启动地址设置为:https://localhost:5001 主要引入的一些nuget包 包名 主要作用 OpenIddict.AspNetCore 注册OpenIddict server中 ...
NPM使用淘宝镜像加速
使用npm config get registry命令可以查看当前npm使用的下载源地址 npm默认使用源地址是:https://registry.npmjs.org 国内访问这个地址太慢会导致npm install时,卡在sill idealTree buildDeps没有反应 使用命令npm config set registry https://registry.npm.taobao.org切换为淘宝镜像源地址
Git的HTTPS和SSH
Git一般会使用HTTPS和SSH这两种协议来进行本地库和远程库之间的操作。 HTTPS协议这种默认每次创建新连接都会要求输入远程库的账户密码,如果不想要每次都输入,可以通过Git凭证存储配置避免每次都输入 通过修改全局配置文件进行设置,操作命令:git config --global credential.helper [options] options 说明 备注 默认所有都不缓存。 每一次连接都会询问你的用户名和密码 cache 此模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除 store 此模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下 osxkeychain 此模式会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的 仅M ...
Git修改已提交记录的作者信息
参考资料:https://www.cnblogs.com/fangsmile/p/17477340.html git filter-branch --env-filter ' OLD_EMAIL="old-email@example.com" CORRECT_NAME="New Author Name" CORRECT_EMAIL="new-email@example.com" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-nam ...
对.net core认证授权的一些理解
认证(Authentication)和授权(Authorization)是两个不同的动作 认证主要判断请求是由谁发出的,确认请求用户的信息(Claims,类似身份证信息的概念) 授权是在认证的基础上,根据认证获取到的用户的信息,判断用户是否有其请求资源的操作权限 认证 services.AddAuthentication(), app.UseAuthentication()配置使用认证中间件 添加认证中间件时,可以设置多种不同的认证方案(Scheme) 常见的一些认证方案&自定义 CookieAuthenticationDefaults.AuthenticationScheme services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) JwtBearerDefaults.AuthenticationScheme services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) IdentityConst ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post$ hexo new "My New Post" More info: Writing Run server$ hexo server More info: Server Generate static files$ hexo generate More info: Generating Deploy to remote sites$ hexo deploy More info: Deployment