草庐IT

签名校验

全部标签

c# - 接口(interface)可以定义 c#-constructor 的签名吗

我有一个.net-app,它提供了一种使用插件扩展应用程序的机制。每个插件都必须实现一个插件接口(interface),并且还必须提供一个接收一个参数(资源上下文)的构造函数。在插件类的实例化过程中,我通过反射查看是否存在所需的构造函数,如果存在,我将实例化该类(通过反射)。如果构造函数不存在,我会抛出一个异常,提示无法创建插件,因为所需的构造函数不可用。我的问题是,是否有一种方法可以在插件接口(interface)中声明构造函数的签名,以便实现插件接口(interface)的每个人也必须提供具有所需签名的构造函数。这将简化插件的创建。我不认为存在这种可能性,因为我认为这样的功能不属于

c# - 我可以将 C# 方法替换为另一个具有相同名称和签名的方法吗?

我有以下情况。一些.Net运行时方法不能很好地工作,我需要制定一个解决方法。就像SqlCommand.ExecuteReader()有时会返回一个封闭的阅读器对象,我想要这样的代码:SqlDataReaderMyExecuteReader(thisSqlCommandcommand){varreader=command.ExecuteReader();if(reader.IsClosed()){thrownewClosedReaderReturnedException();}returnreader;}这会很好,除非我现在需要更改所有调用ExecuteReader()的代码,以便它现在

c# - JwtSecurityTokenHandler().ValidateToken()::签名验证失败...在此上下文中不支持 sha256

当我执行JwtSecurityTokenHandler().ValidateToken()函数时出现以下错误:这是我的伪代码:varjwtToken={...}vartokenHandler=newJwtSecurityTokenHandler();varvalidationParameters=newTokenValidationParameters{...};varclaimsPrincipal=tokenHandler.ValidateToken(jwtToken,validationParameters);这里是错误:Jwt10316:Signaturevalidationfa

c# - 使用 HMAC-SHA1 加密创建 OAuth 签名返回 HTTP 401

问题我需要对需要OAuth加密的API进行身份验证。我的方向是正确的,但我确信我的签名基本字符串有问题。由于HMACSHA1哈希基于key和BaseString,因此我得到了错误的oauth_signature。OAuthSigningProcess到目前为止我已经能够收集到所有必需的数据,其中包括:ConsumerKeyConsumerSecretAccesTokenAccesSecretSha1HasedValue(BasedonKeyandMessage,whereMessageisthesignatureBasestring)SignatureBaseString问题由于签名无

c# - 验证 JWT 签名时出现 SecurityTokenSignatureKeyNotFoundException

我正尝试为我的组织实现OpenIDConnect规范。我在测试依赖方应用程序中使用Microsoft的OpenIDConnectOWIN实现来验证我的协议(protocol)实现。我公开了以下元数据文档:{"issuer":"https://acs.contoso.com/","authorization_endpoint":"http://localhost:53615/oauth2/auth","token_endpoint":"http://localhost:53615/oauth2/token","userinfo_endpoint":"http://localhost:53

c# - 更改继承类中的抽象方法签名

假设我有一个名为Engine的类作为抽象基类。我还有派生自它的ElectrictEngine和FuelEngine类。我想创建一个为引擎加油的方法。我是否应该将其作为基类级别的抽象方法并以通用方式命名,例如fillUpEnergy?问题是,如果我有一个电动引擎,该方法采用的参数数量与燃料引擎需要传递的参数数量不同。因此,方法的签名不同。此外,是否有任何聪明的方法可以将通用方法用于两个引擎,但将其包装在更具体的名称中?例如:对于燃料发动机,“加油”,对于电动发动机,“充电电池”?同时对用户隐藏泛型方法? 最佳答案 在这种情况下,我会为

c# - 如何从 C# 应用程序发送签名的电子邮件?

我需要从我的C#.NET应用程序中发送签名的电子邮件。哪种方法最简单? 最佳答案 这个开源项目包含发送签名电子邮件所需的一切。MailSystem.NET 关于c#-如何从C#应用程序发送签名的电子邮件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3601062/

c# - 使用文档哈希比较签名的 PDF 和未签名的 PDF

经过广泛的谷歌搜索后,我开始怀疑我是否以某种方式遗漏了数字签名的要点。这基本上是我认为我原则上应该能够做的事情,我希望iTextSharp允许我:我正在用C#和.NET编写,并使用iTextSharp来解析PDF文件。我有一个未签名的PDF文件,还有一个相同文件的签名版本。我知道数字签名从根本上对PDF数据进行哈希处理,使用私钥对其进行加密,然后验证过程的一部分是使用公钥对其进行解密,并确保再次进行哈希处理时结果与PDF数据匹配。除此之外,我想获取这个解密的文档哈希,并将其与从我的未签名PDF生成的文档哈希进行比较。这是因为我不仅要验证签名的PDF是真实的,还要验证它是否与我记录在案的

c# - RSACryptoServiceProvider(.NET 的 RSA)可以使用 SHA256 代替 SHA1 进行加密(不签名)吗?

加密时,RSACryptoServiceProvider(或.NET提供的任何其他RSA加密器)能否使用SHA256而不是SHA1?SHA1似乎是硬编码的,无法更改。例如,RSACryptoServiceProvider.SignatureAlgorithm被硬编码为返回“http://www.w3.org/2000/09/xmldsig#rsa-sha1”。如果没有办法让RSACryptoServiceProvider使用SHA256,有什么替代方案?更新以下代码运行良好,但我想将OAEPWithSHA1AndMGF1Padding更改为OAEPWithSHA256AndMGF1Pa

c# - (如何)是否可以绑定(bind)/重新绑定(bind)一个方法来与不同签名的委托(delegate)一起工作?

我是一名C++开发人员,在C++中使用过信号和槽,这对我来说似乎类似于C#中的委托(delegate)。我发现自己在寻找“绑定(bind)”提供的功能时不知所措,觉得我一定遗漏了一些东西。我觉得像下面这样的东西,在c++中是可能的,在带有委托(delegate)的c#中应该是可能的。这是我在C++中所做的一些伪代码:SlotsomeCallback;intfoo(inti){std::coutsomeCallback=bind(fun_ptr(foo),i);++i;//addedtoshowthatlateevaluationwouldbeanon-trivialdifference