C# 编译特定版本的DotNetOpenAuth,只需一个小改动,签名问题
我正在尝试构建版本4.3.0。但我得到了一个已知的错误: 无法加载文件或程序集“DotNetOpenAuth.Core”或其依赖项之一。无法验证强名称签名。程序集可能已被篡改,或者已延迟签名但未使用正确的私钥完全签名。(来自HRESULT的异常:0x80131045) 我尝试了几种选择,但没有成功 问题是我必须与OpenId提供者联系,他们告诉我除非我更改C# 编译特定版本的DotNetOpenAuth,只需一个小改动,签名问题,c#,.net,dotnetopenauth,C#,.net,Dotnetopenauth,我正在尝试构建版本4.3.0。但我得到了一个已知的错误: 无法加载文件或程序集“DotNetOpenAuth.Core”或其依赖项之一。无法验证强名称签名。程序集可能已被篡改,或者已延迟签名但未使用正确的私钥完全签名。(来自HRESULT的异常:0x80131045) 我尝试了几种选择,但没有成功 问题是我必须与OpenId提供者联系,他们告诉我除非我更改受保护字符串GetSignature方法,否则它将无法工作 该行: MessageDictionary dictionary = this.C
受保护字符串GetSignature
方法,否则它将无法工作
该行:
MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage);
根据他们的意见,必须改为:
MessageDictionary dictionary = this.Channel.MessageDescriptions.GetAccessor(signedMessage, true);
在这方面,有人建议,可以解释如何编译它。还有人会这样做吗?大量的谷歌搜索并没有让我找到解决方案
有人能帮我吗?我知道OpenID2.0现在已经过时,但提供商不会很快切换到OpenConnect。以上评论没有让我进一步了解 经过更多的尝试,我发现由于密钥中缺少私有部分,因此无法进行签名(duh) 因此,我决定通过将所有csproj文件中的以下true值替换为false来删除签名。在VisualStudio的所有项目中,使用notepad++进行大规模替换比使用手动替换更快
<PropertyGroup>
<SignAssembly>true</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<DelaySign>true</DelaySign>
</PropertyGroup>
真的
真的
以上属性位于“项目”节点下
删除后,我可以编译和分发
如果要通过VisualStudioIDE执行此操作,请右键单击项目,然后单击“属性”并转到“签名”选项卡。轮到签名了。看看这个