小编Con*_*ver的帖子

UPS API OAuth 令牌请求失败

UPS 开发人员门户中,我创建了一个具有客户端 ID 和客户端密钥的应用程序。接下来,我想获取 OAuth 令牌,以便可以使用它来访问他们的其他 API。我正在根据规范创建令牌请求创建令牌请求,但收到以下错误:

\n
{"response":{"errors":[{"code":"10400","message":"Invalid/Missing Authorization Header"}]}}\n
Run Code Online (Sandbox Code Playgroud)\n

该规范具有“试用”功能,您可以在其中获取测试令牌。它提示用户填写x-merchant-id参数和grant_type表单变量,并创建一个如下所示的curl 请求:

\n
curl -X POST "https://wwwcie.ups.com/security/v1/oauth/token" \n     -H "accept: application/json" \n     -H "x-merchant-id: {My_Client_Id_Goes_Here}" \n     -H "Content-Type: application/x-www-form-urlencoded" \n     -d "grant_type=client_credentials"\n
Run Code Online (Sandbox Code Playgroud)\n

对于 x-merchant_id,我使用了我的 app\xe2\x80\x99s 客户端 ID。不清楚 grant_type 的值是否应为短语client_credentials(该页面看起来这是唯一有效的值)还是 my app\xe2\x80\x99s 实际的客户端密钥。我都尝试过,但每次都出现相同的错误。

\n

有上百万个关于如何使用其(旧式)API 密钥的示例,但除了上面链接的说明之外,几乎没有任何关于如何获取 OAuth 令牌的示例!

\n

ups oauth oauth-2.0

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

如何在不添加其他上下文属性的情况下将自定义属性推送到 Serilog 的 LogContext?

在 .Net Core 2.2 API 中,我尝试使用 Serilog 记录到 SQL Server,以利用其结构化日志记录功能。除了标准字段(Id、Timestamp、Level、Message、MessageTemplate、LogEvent)之外,我还需要在每个日志条目中捕获用户名和 IP 地址。我看过这篇文章,但我想在一个地方做这件事,这样开发人员就不必在每个日志语句中手动添加它。我的Startup.csctor 中有以下代码段:

    public Startup(IConfiguration configuration)
    {
        _configuration = configuration;

        Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(configuration)
            .Enrich.FromLogContext()
            .Enrich.With<SerilogContextEnricher>()
            .CreateLogger();
    }
Run Code Online (Sandbox Code Playgroud)

.Enrich.FromLogContext()调用使静态 LogContext 可供我在自定义中间件中添加自定义属性(用户名和 IP 地址),如下所示:

    public class SerilogMiddleware
    {
        private static readonly ILogger Log = Serilog.Log.ForContext<SerilogMiddleware>();
        private readonly RequestDelegate _next;

        public SerilogMiddleware(RequestDelegate next)
        {
            this._next = next ?? throw new ArgumentNullException(nameof(next));
        }

        public async Task Invoke(HttpContext httpContext)
        {
            if (httpContext == null) throw new ArgumentNullException(nameof(httpContext)); …
Run Code Online (Sandbox Code Playgroud)

serilog asp.net-core-webapi

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

“FromSql”操作的结果中不存在所需的列,并且 [NotMapped] 没有帮助

我正在使用 EF Core 3.0 将数据从 SQL Server 存储过程获取到名为 的对象模型中Recipient。该Recipient模型定义了几个属性EnvelopeIdName,这些属性不是从存储过程返回的。当我使用 调用存储过程时FromSqlInterpolated,收到错误消息

“FromSql”操作的结果中不存在所需的列“EnvelopeId1”

根据我在 EF Core 文档中读到的内容,我应该能够向[NotMapped]这些属性添加属性,并且 EF Core 应该能够在读取或写入数据库时​​忽略它们,对吗?不幸的是,这对我不起作用,我收到了上述错误。

如果我在存储过程中添加两列并删除[NotMapped]对象模型中的属性,则一切正常。这证明我的其他列/属性名称匹配正确并且没有任何拼写错误。

我已经看到使用DbQuery而不是 的建议DbSet,但它已被弃用,所以我不想使用它。我看到过使用两种不同对象模型的建议,其中一种的属性与存储过程结果集完全匹配,但这只会导致大量额外的模型。我在这里做错了什么?

我的对象模型:

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace MyNamespace.Models
{
    public class Recipient
    {
        [Key]
        public long RecipientId { get; set; }
        [NotMapped]
        public Guid? EnvelopeId { get; set; }
        public string Type { get; set; }
        public string UserId { …
Run Code Online (Sandbox Code Playgroud)

c# sql-server .net-core-3.0 ef-core-3.0

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