我需要将Microsoft.AspNetCore.Http.HttpRequest从AspNetCore上下文转换为HttpRequestMessage以传递给HttpClient.有没有一种简单的方法来实现这一目标?或者任何实现这一点的提示都会非常有用.
更新 我想将请求转换为消息,但我想更改目标网址,我只想将请求重定向到另一个服务器.
我有一个保存在变量中的结果字符串RES,这个结果就像2.3/5.0我想在" /" 之前获取部分并通过ECHO命令将其发送到批处理输出.我一直在搜索如何使用批处理命令执行此操作,但只获得将子字符串设置为固定位置的结果,但我怎么能知道这个位置?如果我知道这个位置,我唯一应该做的就是:
ECHO %RES:~0,pos%
Run Code Online (Sandbox Code Playgroud)
然后问题是:我如何从字符串中获得这个位置?谢谢
我正在尝试解码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 …
我正在尝试检查某些文本是否包含文本和 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,但到目前为止还没有运气。
我需要知道在应用.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) 我需要在控制器外部的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的实例将它保存在我自己的单例类中吗?
c# ×3
asp.net-core ×2
batch-file ×1
bouncycastle ×1
cmd ×1
command-line ×1
encryption ×1
httpcontext ×1
jsonb ×1
linq ×1
pem ×1
postgresql ×1
request ×1
sql-like ×1