在没有身份的情况下使用 Bearer/Jwt 授权

2023-11-26

我正在使用 Asp 5 开发 Web API,并阅读了一些有关 Web API 的文档,意识到我需要 Bearer 授权。

经过查找,没有发现任何未经授权使用的文档或样本Aspnet.Identity。我有自己的会员资格,但我不想使用Identity
我应该使用Identity图书馆?或者有没有办法在我的会员资格中实施授权。

一个小问题:
如果我被迫使用 Identity,我怎样才能将 EntityFramework 更改为类似 dapper 或 ADO.NET 的东西?DBContext?


已经有一个JWT 承载中间件,您只需要编写一些发行不记名令牌的内容即可。这有点复杂,具体取决于您用作身份存储的内容,并且当您表明它是自定义的东西时,很难就任何方法提供建议。不过,创建 JWT 令牌并不难;

var now = DateTime.UtcNow;

// Creates new keys automatically, you'd want to store these somewhere
var aes = new AesCryptoServiceProvider();

var signingTokenHandler = new JwtSecurityTokenHandler();
var tokenDescriptor = new SecurityTokenDescriptor
{
    Subject = new ClaimsIdentity(
                new[]
                {
                    new Claim(JwtRegisteredClaimNames.Aud, "YOURWEBSITEURL")                    }),
                    TokenIssuerName = "YourWebSite",
                    Lifetime = new Lifetime(now, now.AddHours(1)),
                    SigningCredentials = new SigningCredentials(
                        new InMemorySymmetricSecurityKey(aes.Key),
                        "http://www.w3.org/2001/04/xmldsig-more#hmac-sha256",
                        "http://www.w3.org/2001/04/xmlenc#sha256")
                };

var token = signingTokenHandler.CreateToken(tokenDescriptor);
var tokenAsString = signingTokenHandler.WriteToken(token);

所有授权部分完全不依赖于成员资格,它们可以与任何身份验证中间件一起使用。授权文档中根本没有提及身份。

有一个授权研讨会可用的。您可以在源代码中看到,没有人显示身份,而是动态创建用户主体,然​​后将它们存储在 cookie 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有身份的情况下使用 Bearer/Jwt 授权 的相关文章

随机推荐

  • 使用 scala 2.10 反射对类型参数进行运行时解析

    给定类型声明 我能够解析类型参数 scala gt reflect runtime universe typeOf List Int match case x TypeRef gt x args res10 List reflect run
  • 如果在引用类之前未调用静态初始化程序,如何注册 java 类

    我有一个由执行文件处理 例如搜索或其他 的类实现的接口 public interface FileProcessorInterface public void processFile String fileName 然后我对每种文件类型有不
  • 将 Crosswalk 插件添加到 Cordova Android 项目后生成错误

    我正在使用最新的科尔多瓦安卓 5 1 0 该项目在没有人行横道的情况下构建和运行良好 但是在我使用添加人行横道插件后 cordova plugin add https github com crosswalk project cordova
  • Hibernate - spring 注释的实体未从 jar 内扫描

    我有一个包含带注释的实体类的包 我将其导入到我的 Web 项目中 当 tomcat 部署项目时 不会扫描 jar 中的实体类是否有注释 有没有办法告诉 spring 在 jar 文件中搜索带注释的类 IE
  • CodeIgniter - 如何捕获数据库错误?

    有没有办法制作CI扔一个例外当它遇到一个DB error而不是显示如下消息 发生数据库错误错误号 1054 where 子句 中的未知列 foo SELECT FROM FooBar WHERE foo 1 注意 我只希望这种情况发生在一个
  • 生成多个范围之间的随机数

    我了解如何生成两个数字之间的随机数 1 int Math random 10 1 1 or min int Math random max min 1 但是我如何生成一个属于多个范围的随机数呢 例如 数字可以在 1 到 10 之间或 50
  • 需要 JavaCV FFmpegFrameRecorder 属性解释

    我在用着FFmpegFrameRecorder从我的网络摄像头获取视频输入并将其记录到视频文件中 问题是我正在使用我发现的一些不同的演示源代码构建我的应用程序 并且我使用其中一些属性对我来说并不完全清楚 首先 这是我的代码片段 FFmpeg
  • 使用 dyn.load 在 R x64 中加载已编译的 C 代码时出现问题

    我最近从32位笔记本换成了64位台式机 都是win7 我刚刚发现使用加载 dll 时出现错误dyn load 我想这是一个简单的错误 我忽略了一些事情 例如 我编写了这个简单的 c 函数 foo c void foo int x x x 1
  • pandas 按两列分组并按平均值汇总

    我有一个像这样的数据框 df pd DataFrame df id 1 1 1 2 2 3 3 3 3 4 4 5 df view A B A A B A B A A B A B df value np random random 12 i
  • WebMethod 返回 JSON 格式的值

    如何将Webmethod的值以JSON格式返回给客户端 我想返回两个静态 int 值 我是否需要使用这两个属性创建新对象并返回它 GetStatus 方法被频繁调用 我不喜欢每次只是为了 json 格式创建一个特殊对象的想法 WebMeth
  • 为什么绝对定位元素显示在静态元素之上?

    我知道绝对定位会破坏正常流程 但由于 HTML 中的顺序是先是绝对元素 然后是静态元素 所以我希望它也能反映在显示顺序中 absolute position absolute width 100px height 100px backgro
  • 为什么Apple推荐使用dispatch_once来实现ARC下的单例模式?

    在ARC下单例的共享实例访问器中使用dispatch once的确切原因是什么 MyClass sharedInstance Static local predicate must be initialized to 0 static My
  • 在 AVAudioEngine 中从网络传输数据,可能吗?

    我有一个使用的应用程序AVAudioEngine用于从本地文件系统播放文件AVAudioPlayerNodes and AVAudioFiles 这工作得很好 现在我想让我的设置也支持从互联网上的服务器流式传输 MP3 文件 到目前为止我尝
  • 为什么安装VS 2017后命令行csc无法编译C#7?

    我刚刚下载了 Visual Studio 2017 RC 这是几天前发布并支持 C 7 我可以使用 IDE 中的 C 7 功能 然而 这种行为似乎不适用于命令行 我正在从事一个项目 需要csc用于处理 C 7 及更高版本的可执行文件 但是
  • 当我在 Windows 上克隆带有符号链接的存储库时会发生什么?

    关于在 Windows 上添加符号链接的支持存在很多问题 但是 当我克隆时实际发生了什么带有符号链接的存储库在 Windows 上 Since 版本1 5 3本机 Git 客户端git clone and git init将探测目标文件系统
  • 当程序崩溃且没有异常时如何调试程序?

    我的一个程序定期崩溃 但我不知道为什么 我在调试模式下运行它 但没有弹出任何内容 程序突然退出了 我遇到过其他确实引发异常的错误 但不是这个 有什么神奇的方法可以抓住它吗 假设您是从 Visual Studio 中运行它 并且由于某种原因
  • ADB 无法识别 Samsung Gear Live 或 LG G 手表

    我正在尝试执行adb在 Windows 7 上的 Samsung Gear Live 手表上 我似乎没有找到设备驱动程序来让它被 ADB 识别 这是我已经拥有的 我已经在 Gear Live 中启用了 ADB 调试 我转到设备管理器并将 g
  • 如何使用 log4net 记录 Threadpool 线程的正确上下文?

    我正在尝试找到一种方法来从一堆线程中记录有用的上下文 问题是 许多代码是在通过线程池线程到达的事件上处理的 据我所知 因此它们的名称与任何上下文都没有关系 该问题可以通过以下代码来演示 class Program private stati
  • Haxe - 打印命令行参数

    使用 Haxe 编程语言 是否可以打印传递给应用程序的命令行参数 我正在尝试在 Haxe 中重写这个 Java 程序 它只是打印命令行参数 public class JavaExample public static void main S
  • 在没有身份的情况下使用 Bearer/Jwt 授权

    我正在使用 Asp 5 开发 Web API 并阅读了一些有关 Web API 的文档 意识到我需要 Bearer 授权 经过查找 没有发现任何未经授权使用的文档或样本Aspnet Identity 我有自己的会员资格 但我不想使用Iden