小编Tim*_*vis的帖子

使用c#的Amazon ec2 API版本2签名编码

我在为ec2 API的第2版签名编码哈希时遇到问题.

注意我的版本1签名哈希工作正常,但这是折旧的,我将需要转移到版本2.所以首先这里是有效的代码...

参数只是一个字典,我要做的只是按键对参数进行排序,并附加没有分隔符的每个值对,然后对我的密钥散列该字符串.(再说一遍,注意这很好用)

private string GetVersion1Sig()
{
  string sig = string.Join(string.Empty, parameters.OrderBy(vp => vp.Key).Select(p => string.Format("{0}{1}", p.Key, p.Value)).ToArray());
  UTF8Encoding encoding = new UTF8Encoding();
  HMACSHA256 signature = new HMACSHA256(encoding.GetBytes(_secretAccessKey));
  byte[] hash = signature.ComputeHash(encoding.GetBytes(sig));
  string result = Convert.ToBase64String(hash);
  return result;
}
Run Code Online (Sandbox Code Playgroud)

现在,对于版本2,有一些更改,这里是来自API开发人员指南的doco ...

  1. 创建以后在此过程中需要的规范化查询字符串:

一个.使用自然字节顺序按参数名称对UTF-8查询字符串组件进行排序.参数可以来自GET URI或POST主体(当Content-Type为application/x-www-form-urlencoded时).

湾 URL根据以下规则对参数名称和值进行编码:

•不要对RFC 3986定义的任何未保留字符进行URL编码.这些未保留的字符是AZ,az,0-9,连字符( - ),下划线(_),句点(.)和波浪号(〜).
•百分比用%XY编码所有其他字符,其中X和Y是十六进制字符0-9和大写AF.
•百分比编码扩展的UTF-8字符,格式为%XY%ZA ....
•百分比将空格字符编码为%20(而不是+,如常见的编码方案那样).

注意
当前所有AWS服务参数名称都使用未保留的字符,因此您无需对其进行编码.但是,您可能希望包含代码来处理使用保留字符的参数名称,以备将来使用.

C.使用等号(=)(ASCII字符61)将编码参数名称与其编码值分开,即使参数值为空.

d.使用与号(&)(ASCII代码38)分隔名称 - 值对.

  1. 根据以下伪语法创建要签名的字符串("\n"表示ASCII换行符).StringToSign = HTTPVerb +"\n"+ ValueOfHostHeaderInLowercase +"\n"+ HTTPRequestURI +"\n"+
    CanonicalizedQueryString HTTPRequestURI组件是URI的HTTP绝对路径组件,但不包括查询字符串.如果HTTPRequestURI为空,请使用正斜杠(/).
  2. 使用刚刚创建的字符串,密钥访问密钥作为密钥,使用SHA256或SHA1作为哈希算法,计算符合RFC 2104的HMAC.有关更多信息,请访问http://www.rfc.net/rfc2104.html.
  3. 将结果值转换为base64.
  4. 使用结果值作为Signature请求参数的值.

所以我拥有的是......

private string …
Run Code Online (Sandbox Code Playgroud)

c# hash amazon amazon-ec2

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

找到文件类型的所有git提交

找到包含特定文件的所有提交非常简单.

git log -- .\Database\Tables\sometable.sql
Run Code Online (Sandbox Code Playgroud)

但有没有一种简单的方法来查找文件类型的所有提交(递归向下子目录?)或者我是否需要编写脚本来执行此操作?

(概念...)

git log -- .\Database\*.sql --recursive
Run Code Online (Sandbox Code Playgroud)

git posh-git

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

如何在 MacBook M1 上混合使用 ARM64 和 X64 版本的 dotnet core

我有一台新的 Macbook Pro (M1),我需要安装多个版本的 dotnet core - 我的大型解决方案有多个版本的混合体,现在正忙于解决这个问题。

但我该如何处理这种情况呢?(注意我有一个 X64 版本的 dotnet 的符号链接)

在此输入图像描述

version .net-core apple-m1

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

无法从 minikube docker 中提取镜像

当我尝试在集群中运行容器时,我收到一条消息“ deployment test created”,但是当我查看仪表板时,我可以看到它处于错误状态(Failed to pull image...,它无法从本地 minikube docker env 中提取图像,因为授权问题

我的步骤是:

  1. 使用hyperv启动minikube并将--insecure-registry开关设置为10.0.0.0/8,也尝试了0.0.0.0/0 - Kubernetes版本1.9.0也尝试了1.8.0
  2. 通过设置docker env为 minikube dockerminikube docker-env | Invoke-Expression
  3. 构建 docker 镜像 - 镜像构建并存在于 minikube 本地 docker 中
  4. kubectl run test --image test-service --port 1101

这是结果:

部署失败

我缺少什么?

docker kubernetes minikube

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

编译需要参数的表达式

好的,我确信这很简单,但我有一个高级时刻.

我有一个简单的BinaryExpression(greaterthan),左边是一个ParameterExpression,右边是一个ConstantExpression我想把这个表达式编译成一个func,我可以调用并传递一个参数给...

var func = ...something with my exp....

bool result = func(myValue);
Run Code Online (Sandbox Code Playgroud)

感谢哈桑,我根据自己的需要修改了答案......

var func = Expression.Lambda<Func<int,bool>>(myExpr, (ParameterExpression)myExpr.left).Compile();
Run Code Online (Sandbox Code Playgroud)

linq expression-trees

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

在 Mongo Linq 查询中执行相交的机制是什么

如何在 Linq for Mongo 中编写 where 子句来确定我的文档中的集合是否包含本地集合的任何成员。

即(这是我期望的工作,但没有)

var myLocalList = <PopulateMyLocalList>;

var myDocs = db.GetCollection<MyDoc>("MyDocs").AsQueryable();
var result =  myDocs.Where(d => d.MyCollection.Intersect(myLocalList).Any());
Run Code Online (Sandbox Code Playgroud)

因此,假设 Mongo Linq 提供程序不支持此功能 - 我该怎么办?

c# linq mongodb

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

属性上的XElement默认命名空间提供了意外行为

我在创建包含默认命名空间和命名命名空间的XML文档时遇到问题,很难解释更容易显示我想要生成的内容...

<Root xmlns="http://www.adventure-works.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://www.SomeLocatation.Com/MySchemaDoc.xsd">
  <Book title="Enders Game" author="Orson Scott Card" />
  <Book title="I Robot" author="Isaac Asimov" />
</Root>
Run Code Online (Sandbox Code Playgroud)

但我最终得到的是......

<Root xmlns="http://www.adventure-works.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://www.SomeLocatation.Com/MySchemaDoc.xsd">
  <Book p3:title="Enders Game" p3:author="Orson Scott Card" xmlns:p3="http://www.adventure-works.com" />
  <Book p3:title="I Robot" p3:author="Isaac Asimov" xmlns:p3="http://www.adventure-works.com" />
</Root>
Run Code Online (Sandbox Code Playgroud)

我编写的用于生成此XML代码段的代码是......

  XNamespace aw = "http://www.adventure-works.com";
  XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance";
  XElement root = new XElement(aw + "Root",
      new XAttribute("xmlns", "http://www.adventure-works.com"),
      new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"),
      new XAttribute(xsi + "SchemaLocation", "http://www.SomeLocatation.Com/MySchemaDoc.xsd"),

      new XElement(aw + "Book",
        new XAttribute(aw + "title", "Enders Game"),
        new …
Run Code Online (Sandbox Code Playgroud)

c# xelement linq-to-xml xml-namespaces

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

当Assembly.GetTypes()由于缺少引用的程序集而失败时,反射器如何显示类型

我有一个破碎的程序集,我想要反思,它没有严重破坏,它只是找不到引用的程序集,所以它确实失败了PEVerify.但是.... Assembly.LoadFrom()仍然会加载和GetTypes()将抛出一个ReflectionTypeLoadException,该.LoaderExceptions阵列显示我什么引用程序无法找到.此时我遇到了障碍.

然而,伟大的小工具Reflector能够进一步实际显示包含的类型,并通过给我一个弹出对话框来浏览它,优雅地处理缺少的引用问题.我的问题是,GetTypes()失败之后,反射器是如何设法获取类型的呢?

c# reflection

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

如何从命令行以管理员身份运行应用程序(TestComplete)

方案....

我正在编写一个PowerShell脚本来自动化一些UI测试,我需要做很多事情,检查存储库中的代码,构建,复制安装程序,然后最后我想运行TestComplete并测试安装程序UI ...

安装程序在写入程序文件,注册表等时以提升模式运行,因此,为了使TestComplete中的测试脚本能够看到msiexec进程,还需要运行TestComplete.我如何从命令行执行此操作?似乎我不能用runas执行此操作,1 /它只是以用户(具有管理员权限)运行应用程序但实际上没有提升,2 /我无法在脚本中提供密码.

有任何想法吗?

testing powershell testcomplete

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

如何在没有祖先形式存在的情况下使用后代的形式

我刚刚在bpl项目中创建了一个表单并将其放在名为AncForm的存储库中.当我在一个名为DecForm的新项目(程序Inheritance1)中创建它的后代时.通常,当DecForm刚刚从AncForm继承时,AncForm将自动包含在新项目中.

program Inheritance1;

{$R *.res}

uses

  Forms,
  cAncForm in 'cAncForm.pas' {AncForm}, //-----> Ancestor ..... Line A
  uDecForm in 'uDecForm.pas' {DecForm}; //-----> Descendant ..... Line B

begin
  Application.Initialize;
  Application.CreateForm(TDecForm, DecForm);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

问题是:在没有"A行"存在的情况下,有没有办法将DecForm链接到这个项目中的AncForm?我的意思是AncForm没有在视觉上链接到项目,但仍然能够在IDE中提供对DecForm的引用,而没有"创建表单错误...".

我希望有一种方法可以将祖先完全包裹在BPL中.

我要感谢任何想法.

delphi

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

MethodGroup作为通用参数

我正在尝试编写一个从给定输入返回methodinfo类的方法,以创建该方法的泛型版本...即

var m = myClass.GetType().GetMethod("SomeMethod").MakeGenericMethod(...blahblah..);
Run Code Online (Sandbox Code Playgroud)

这是有效的,除了我有我的方法名称的字符串文字,所以如果在重新分解的过程中我碰巧重命名我正在使用的方法之一,我直到运行时才发现.

我想要做的是创建一个帮助方法,我可以传递lamba到指定方法组,这样我将得到方法名称的编译时间检查,更不用说智能感知等...即.

MethodInfo mi = myClass.GetMethodInfo( o => o.SomeMethod );
m = mi.MakeGenericMethod(..blah...);
Run Code Online (Sandbox Code Playgroud)

但是我无法弄清楚助手的方法签名......

public MethodInfo GetMethodInfo(Func<MyClass,XXXX> lambda){ //What is my XXXX ? }
Run Code Online (Sandbox Code Playgroud)

c# reflection lambda

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