小编And*_*ijo的帖子

如何在类库中访问 JWT User.Claims

我使用 DDD 构建了我的项目,它看起来像这样:

| CompanyName.API
  | MyControllerThatRequiresJwtToken << Entry point
| CompanyName.Application
| CompanyName.Data
  | EfCoreContext << I would like to get the claims here
| CompanyName.Domain
| CompanyName.IoC
| CompanyName.Test
| CompanyName.UI
Run Code Online (Sandbox Code Playgroud)

我正在使用Z.EntityFramework.Plus.Audit.EFCore来审核所有数据更改。我将它添加到 CompanyName.Data 项目中,因为这是我的 EF 上下文所在的位置。

问题是: API 中的所有请求都需要 JWT 令牌。我想在将保存到数据库中的 Audit 对象中设置发送请求的人的用户名,但是我无权访问数据层中的 HttpContext 。

获取此信息的最佳方法是什么?也许将 IHttpContextAccessor 注入数据层?使数据层“依赖于 Http”,这听起来不是一个好计划。

更新

我不确定如何将它从控制器传递到上下文。我相信它需要以某种方式注入。

EfCoreContext.cs 的片段

public override int SaveChanges()
{
   var audit = new Audit();
   audit.CreatedBy = "JWT Username"; // << I'd need it here

   audit.PreSaveChanges(this);
   var …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core

3
推荐指数
1
解决办法
2523
查看次数

使用EF Core 2.1检查表是否存在

在Entity Framework中,可以通过以下方式检查表的存在:

bool exists = context.Database
                 .SqlQuery<int?>(@"
                     SELECT 1 FROM sys.tables AS T
                     INNER JOIN sys.schemas AS S ON T.schema_id = S.schema_id
                     WHERE S.Name = 'SchemaName' AND T.Name = 'TableName'")
                 .SingleOrDefault() != null;
Run Code Online (Sandbox Code Playgroud)

我使用EF Core 2.1并且该方法SqlQuery不存在.

检查表是否存在的正确方法是什么?理想情况下,无需尝试访问该表,并假设在抛出异常时它不存在.

编辑:我最后的实施

public bool TableExists(string tableName)
{
    return TableExists("dbo", tableName);
}

public bool TableExists(string schema, string tableName)
{
    var connection = Context.Database.GetDbConnection();

    if (connection.State.Equals(ConnectionState.Closed))
        connection.Open();

    using (var command = connection.CreateCommand())
    {
        command.CommandText = @"
            SELECT 1 FROM INFORMATION_SCHEMA.TABLES 
            WHERE TABLE_SCHEMA …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework entity-framework-core

1
推荐指数
1
解决办法
1371
查看次数

SASS (.scss) rule to apply when has both nested classes

I'm using SASS (.scss) for my current project.

HTML

<div class="colours colours--blue">
  <!-- This should be blue -->
</div>

<div class="colours colours--yellow">
  <!-- This should be yellow -->
</div>

<div class="colours colours--blue colours--yellow">
  <!-- This should be green -->
</div>
Run Code Online (Sandbox Code Playgroud)

SCSS

.colours {
   width: 50px;
   height: 50px;

   &--blue {
      background-color: blue;
   }

   &--yellow {
      background-color: yellow;
   }

   &--blue (AND) &--yellow { /* <<< HOW TO CREATE THIS SELECTOR? */
      background-color: green;
   }
}
Run Code Online (Sandbox Code Playgroud)

html css sass

1
推荐指数
1
解决办法
56
查看次数

根据列的MAX值从行中选择多个列

我正在尝试创建每个学生每天最高分的摘要.

示例数据:

???????????????????????????????????????????????
? id ? student_id ? score ? date_time         ?
???????????????????????????????????????????????
? 1  ? 1          ? 5     ? 2018-07-01 9:30   ?
? 2  ? 1          ? 3     ? 2018-07-01 15:30  ?
? 3  ? 1          ? 7     ? 2018-07-02 8:30   ?
? 4  ? 2          ? 7     ? 2018-07-01 9:30   ?
? 5  ? 2          ? 8     ? 2018-07-01 15:30  ?
? 6  ? 2          ? 8     ? 2018-07-02 8:30   ?
? 7  ? 3          ? 4     ? …
Run Code Online (Sandbox Code Playgroud)

sql postgresql

0
推荐指数
1
解决办法
44
查看次数