gpt4 book ai didi

c# - 在存储库服务中检索用户 http 数据

转载 作者:行者123 更新时间:2023-12-03 16:02:11 25 4
gpt4 key购买 nike

我目前正在构建一个应用程序,其中每个用户都有一个存储在用户 session 存储中的唯一 key 。该 key 用于解密数据库中的用户数据。由于应用程序的存储库层处理数据库查询(使用 Dapper),我希望在那里进行解密。

现在的问题:我可以从 session 存储中检索用户 key ,将其传递给 Controller ​​,然后传递给服务,然后传递给存储库,在每个链接的方法中使用名称为“key”的参数。有没有办法将 key 从 Controller 传递到存储库层,而不必在每次调用中手动包含 key ?

如果有比将其存储在 session 存储中更好的解决方案,我愿意接受它,如果它会使这更容易。

我遵循的加密系统如下(来自另一个 SO 答案):
Encryption mechanism

最佳答案

可以注入(inject)IHttpContextAccessor在您的存储库或其他相关业务服务中检索用户 key 。

假设您在 Header 中发送用户 key Http 请求数为 UserKey :

在你的 Startup.cs

public void ConfigureServices(IServiceCollection services)
{
...
services.AddHttpContextAccessor();
...
}

在您的存储库中:
public Repository(IHttpContextAccessor httpContextAccessor, ...)
{
...
var userKey = httpContextAccessor.HttpContext.Request.Headers["UserKey"].FirstOrDefault();

// Or if you send it as cookie:
// var userKey = httpContextAccessor.HttpContext.Request.Cookies["UserKey"];
...
}

关于c# - 在存储库服务中检索用户 http 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com