.net core API项目中可以使用角度存储用户信息的位置

2024-02-22

我有一个 Angular 项目,我正在使用 .net core 2.o Web API。我将用户信息存储在 Jwt 中,我想记录每个数据库操作。我可以通过发送 jwt 并从服务器端的 request.header 中获取来访问用户信息。但问题是,可以存放在哪里呢?在我的旧 mvc 项目中,我可以存储在会话中。但这个项目是API。我们使用 JWT 而不是会话。我怎样才能在请求开始到结束期间实现存储 UserInfo 。我想从任何地方访问 UserInfo。这是我的动作过滤器:

 public class TestFilterAttribute : System.Web.Http.Filters.FilterAttribute, IActionFilter
    {
        public void OnActionExecuting(ActionExecutingContext context)
        {
            var requestedUserInfo= context.HttpContext.Request.Headers["Authorization"];
            ??????????????? = requestedUserInfo;
        }
        public void OnActionExecuted(ActionExecutedContext context)
        {
        }
    }

我的架构是这样的:
控制器=>服务=>存储库。 因此,我必须在所有方法中将参数作为 UserInfo 发送。所以,我不想将所有方法参数添加为 UserInfo。所以,我想学习摆脱这个问题。

MyController.cs

 [HttpGet("GetAllStudents")]
 public async Task<ServiceResult>GetAllStudents()
    {
        var requestedUserId= context.HttpContext.Request.Headers["Authorization"];
        return await (studentService.GetAllStudents(requestedUserId));
    }

我的服务.cs

 public async Task<ServiceResult> GetAllStudents(int requestedUserId)
    {
        return await unitOfWork.studentRepo.GetAllStudents(requestedUserId);
    }

我的存储库.cs

public async Task<List<Student>> GetAllStudents(int requestedUserId)
        {
          LogOperation(requestedUserId);
          return context.Students.ToList();
        }

您可以看到每个方法都发送requestedUserId。我怎样才能摆脱这个?


你不存储它,Angular 必须在每个请求中发送 JWT,而 Asp.Net Core webapi 必须打开它,验证它,然后读取从中发出请求的用户。

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

.net core API项目中可以使用角度存储用户信息的位置 的相关文章

随机推荐

  • 从解决方案中删除 TFS 连接

    如何将解决方案制作为干净副本而不映射到 TFS 问题是当我尝试打开它时会显示此消息 我想在没有 TFS 连接的情况下正常打开它 要完全删除 TFS 源代码管理绑定 请执行以下两个步骤 转到解决方案的文件夹 查找并删除所有文件 vssscc
  • 由于 libssl 依赖,`apt-get install librdkafka1` 在 Debian 9.x 上失败

    Basic apt get install librdkafka1在 Debian 8 x 上工作 但在 Debian 9 x 上失败 这看起来像是关于 libssl 的依赖版本问题 Debian 8 x 有 libssl1 0 0 Deb
  • 为什么需要 islower() 及其朋友来处理 EOF?

    Why are islower 以及需要处理的朋友EOF 然而putchar 朋友们不需要吗 为什么不是islower 治疗int as unsigned char 就像情况一样putchar 这是完全有道理的 因为我们必须检查EOF无论如
  • libstdc++.so.6:找不到版本“GLIBCXX_3.4.20”

    为了将 gt 2GB 的原始读数上传到 Genebank 上的 SRA 我在 ubuntu 16 04 上安装了 aspera connect 插件 但按照基因库 SRA 门户上的说明 该插件并未弹出 当我在本地初始化插件时 我在终端上收到
  • 创建可训练权重的 Keras 层

    edit请参阅底部以了解我如何解决此问题 我写了自己的Keras层 其构建方法如下 class Multed Weights Layer def init self input dim output dim kwargs self outp
  • 位操作:打印下一个最小和最大的具有相同位数的 1 位

    给定一个整数 打印其二进制表示中具有相同数量的 1 位的下一个最小和下一个最大数字 数完数字中1的个数后 如何确定下一个最小的数字 对于下一个高度 您可以使用 Hakmem 175 第 175 项 高斯珀 要获取具有相同数量 1 位的下一个
  • 查找并排序目录

    我需要查找不超过 30 天的目录 然后按日期对它们进行排序 从最新到最旧 这是我的命令 find tmp logs maxdepth 1 mindepth 1 type d mtime 30 问题显然是排序部分 如果只有 几个 目录 您可以
  • SLCOmposeviewcontroller Twitter 共享警报问题

    我一直在使用这个代码来发布推特 SLComposeViewController fbController SLComposeViewController composeViewControllerForServiceType SLServi
  • Bootstrap glyphicon-菜单-汉堡包未显示

    这是明确定义的汉堡菜单引导图标 http getbootstrap com components glyphicons glyphs http getbootstrap com components glyphicons glyphs 如果
  • PHP如何删除最后一个逗号[重复]

    这个问题在这里已经有答案了 输出示例 1 test test test test test 2 test test test 3 test test 4 test 我尝试根据我的使用内爆上一个问题 https stackoverflow c
  • 如何像 GitHub Actions 一样在 CI 中以非交互方式登录 ArgoCD CLI?

    We have 使用 AWS EKS 与 Tekton 的完整设置 https github com jonashackt tekton argocd eks已安装并希望使用 ArgoCD 进行应用程序部署 正如文档所述 https arg
  • 使用 asp.net C# Javascript 通过指纹登录 Asp.net Web 应用程序

    我想使用指纹登录我的 asp net Web 应用程序 这意味着我不想使用任何登录 ID 和密码 我只想用指纹登录 我有一台 3m cogent 设备 该设备工作正常 但我不知道如何将该设备与我的软件集成 我正在使用 ActiveX 我的
  • 如何计算 WooCommerce 编辑订单中的自定义订单总额?

    目前 我正在开发 WooCommerce 5 2 2 项目 我的客户希望在后端 不适用于客户 创建预付款的自定义输入字段 以便当我的客户收到客户的预付款 交货目的 时 他们可以手动添加并从后端订购总额自动调整 因此 我编写了一个代码并在帖子
  • 对于类变量,向上转换和向下转换有什么区别

    对于类变量而言 向上转换和向下转换有什么区别 例如下面的程序中 Animal类只包含一个方法 而Dog类包含两个方法 那么我们如何将Dog变量转换为Animal变量 如果转换完成 那么我们如何使用 Animals 变量调用 Dog 的另一个
  • Pusher 连接数是如何计算的?

    我想了解的定价方案Pusher http pusher com pricing 根据他们的定价 Bootstrap 允许100 max Connections 我的问题是这样的 如果我的页面每天有 10 000 名访问者 每个人订阅不同的频
  • 为什么 MSChart 不填充整个图表区域?

    我正在创建几个图表 但我无法弄清楚为什么图表的左侧和右侧有这么多空白区域 我有一个 Winforms 图表 ChartArea 和系列 图表的左侧和右侧总是有一英寸的空间 看起来像是浪费的空间 我需要更改什么设置才能减少该空白空间的大小 我
  • Numpy 弃用关于布尔索引的警告

    这段代码 import numpy as np def some method y threshold print type y y shape y dtype c np zeros y shape c y gt threshold 1 结
  • Alembic 修订 ID 代表什么?

    我刚刚开始研究 Alembic 来自 Django 我们在那里South http south aeracode org 迁移我们的数据库模式 即soon https docs djangoproject com en 1 7 topics
  • 将字符串转换为 Double C#

    我在数据库中有一个浮动字段 我的应用程序是WindowsForm 我需要将格式 43 27 的文本框中的值转换为双精度 当我执行此操作 COnvert ToDouble txtbox Text 时 出现异常 提示输入字符串格式错误 如何纠正
  • .net core API项目中可以使用角度存储用户信息的位置

    我有一个 Angular 项目 我正在使用 net core 2 o Web API 我将用户信息存储在 Jwt 中 我想记录每个数据库操作 我可以通过发送 jwt 并从服务器端的 request header 中获取来访问用户信息 但问题