小编yos*_*bel的帖子

将Microsoft.AspNetCore.Http.HttpRequest转换为HttpRequestMessage

我需要将Microsoft.AspNetCore.Http.HttpRequest从AspNetCore上下文转换为HttpRequestMessage以传递给HttpClient.有没有一种简单的方法来实现这一目标?或者任何实现这一点的提示都会非常有用.

更新 我想将请求转换为消息,但我想更改目标网址,我只想将请求重定向到另一个服务器.

c# request asp.net-core

21
推荐指数
2
解决办法
6825
查看次数

我是如何批量获取字符串中字符的位置的

我有一个保存在变量中的结果字符串RES,这个结果就像2.3/5.0我想在" /" 之前获取部分并通过ECHO命令将其发送到批处理输出.我一直在搜索如何使用批处理命令执行此操作,但只获得将子字符串设置为固定位置的结果,但我怎么能知道这个位置?如果我知道这个位置,我唯一应该做的就是:

ECHO %RES:~0,pos%
Run Code Online (Sandbox Code Playgroud)

然后问题是:我如何从字符串中获得这个位置?谢谢

command-line cmd batch-file

7
推荐指数
2
解决办法
2万
查看次数

使用带有密码私钥的RSA解密消息使用C#中的pem文件

我正在尝试解码HelloWorks回调签名以增加端点的安全性.由于它保留在文档中,我需要使用以下openssl命令生成私钥:

openssl genrsa -des3 -out helloworks.pem 4096
Run Code Online (Sandbox Code Playgroud)

然后创建公钥:

openssl rsa -in helloworks.pem -outform PEM -pubout -out public.pem
Run Code Online (Sandbox Code Playgroud)

我创建了两个密钥并对其进行了配置.现在我需要解码base64由他们发送的X-Helloworks-Signature,然后使用私钥解密结果.

我一直在尝试用C#做几种方法,但没有运气.我使用BouncyCastle库完成的一种方法是:

        var signature = mvcContext.HttpContext.Request.Headers["X-Helloworks-Signature"];

        var url = mvcContext.HttpContext.Request.Path.Value;

        var bytesToDecrypt = Convert.FromBase64String(signature);

        AsymmetricCipherKeyPair keyPair;

        var pemPath = Path.Combine(env.ContentRootPath, "./helloworks.pem");
        using (var reader = File.OpenText(pemPath))
            keyPair = (AsymmetricCipherKeyPair)new PemReader(reader, new PasswordFinder("password")).ReadObject();

        var decryptEngine = new Pkcs1Encoding(new RsaEngine());
        decryptEngine.Init(false, keyPair.Private);

        var decryptedToken = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length));
Run Code Online (Sandbox Code Playgroud)

但它总是抛出相同的异常消息:

Org.BouncyCastle.Crypto.DataLengthException: 'input too large for RSA cipher.'
Run Code Online (Sandbox Code Playgroud)

我一直在尝试我在SO和网络上找到的其他方法,但没有运气.

如何使用私钥pem文件解密C#中的签名,特别是.Net Core 2?

更新1 …

c# encryption bouncycastle pem .net-core-2.0

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

Postgres 类型 json 详细信息的无效输入语法:令牌“%”无效

我正在尝试检查某些文本是否包含文本和 Postgres 数组中的值的串联,例如:

SELECT true from jsonb_array_elements('["a", "b"]'::jsonb) as ids 
WHERE 'bar/foo/item/b' LIKE '%item/' || ids->>'id' || '%'
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR: invalid input syntax for type json Detail: Token "%" is invalid. Position: 95 Where: JSON data, line 1: %...
Run Code Online (Sandbox Code Playgroud)

如何利用数组的值,将它们与文本连接起来并检查LIKE表达式?

我已经尝试了几种明确添加演员表的想法::jsonb,但到目前为止还没有运气。

postgresql sql-like jsonb

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

如何知道OrderBy是否应用于查询?

我需要知道在应用.Skip或.Take之前是否将OrderBy应用于Linq查询.我无法控制收到的查询,如果应用了OrderBy,我需要维护这个,在任何其他情况下我应该OrderBy(t => true).我尝试过以下方法:

    DataContext db;
    var query = db.Orders;

    var wasOrderByApplied = typeof(IOrderedQueryable<Order>).IsAssignableFrom(query.AsQueryable().Expression.Type);
    var wasOrderByApplied2 = query.AsQueryable().Expression.Type == typeof(System.Data.Entity.Core.Objects.ObjectQuery<Order>);
    var wasOrderByApplied3 = typeof(IOrderedQueryable<Order>) == query.AsQueryable().Expression.Type;

    var query2 = db.Orders.OrderBy(o => o.CreationDate);

    var wasOrderByApplied4 = typeof(IOrderedQueryable<Order>).IsAssignableFrom(query2.AsQueryable().Expression.Type);
    var wasOrderByApplied5 = query2.AsQueryable().Expression.Type == typeof(System.Data.Entity.Core.Objects.ObjectQuery<Order>);
    var wasOrderByApplied6 = typeof(IOrderedQueryable<Order>) == query2.AsQueryable().Expression.Type;

    var query3 = db.Orders.OrderBy(o => o.CreationDate).Where(o => o.Id > 4);

    var wasOrderByApplied7 = typeof(IOrderedQueryable<Order>).IsAssignableFrom(query3.AsQueryable().Expression.Type);
    var wasOrderByApplied8 = query3.AsQueryable().Expression.Type == typeof(System.Data.Entity.Core.Objects.ObjectQuery<Order>);
    var wasOrderByApplied9 = typeof(IOrderedQueryable<Order>) == query3.AsQueryable().Expression.Type;
Run Code Online (Sandbox Code Playgroud)

结果在哪里:

wasOrderByApplied = true;
wasOrderByApplied2 = true; …
Run Code Online (Sandbox Code Playgroud)

c# linq entity-framework

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

在Controller外部的AspNet Core 1.0.0中获取HttpContext

我需要在控制器外部的AspNet Core中获取HttpContext.在较旧的AspNet 4中,我可以使用HttpContext.Current来获取它,但它似乎在新的AspNet中被删除了.我发现的唯一解决方法是通过依赖注入解析IHttpContextAccessor并向它询问HttpContext,但是为了注入IHttpContextAccessor,我需要在应用程序启动中添加IHttpContextAccessor作为单例:

public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    services.AddMvc();
    services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
}
Run Code Online (Sandbox Code Playgroud)

我研究过它,这是我找到的唯一方法.我谷歌它和IHttpContextAccessor被删除作为依赖解析器中的默认值,因为它是非常重的依赖.有没有其他方法来实现这一目标?

编辑: 我想知道如果不是将它作为Singleton添加到依赖项解析器,我可以在同一个地方使用HttpContextAccessor的实例将它保存在我自己的单例类中吗?

httpcontext asp.net-core

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