【发布时间】:2011-03-21 05:30:54
【问题描述】:
如何将我自己的声明添加到使用 DotNetOpenAuth 作为 OpenID 提供者的用户断言中?
我需要向 ClaimsRequest 和 ClaimsResponse 添加一些属性,例如“UserID”。我在类 ClaimsRequest.cs 和 ClaimsResponse.cs 中都添加了这个属性,当我用这个更改构建 DotNetOpenAuth 时,它在 VS 2010 中运行良好,但是当我在 iis 7.5 上发布时,它会抛出这个异常:
“/OpenID”应用程序中的服务器错误。
无法加载文件或程序集 'DotNetOpenAuth.Contracts' 或其中之一 它的依赖关系。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (来自 HRESULT 的异常:0x80131045) 描述:未处理的异常 在执行过程中发生 当前的网络请求。请查看 堆栈跟踪以获取有关的更多信息 错误及其起源 编码。
异常详情: System.IO.FileLoadException:不能 加载文件或程序集 'DotNetOpenAuth.Contracts' 或其中之一 它的依赖关系。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (HRESULT 异常:0x80131045)
来源错误:
产生了一个未处理的异常 在当前执行期间 网络请求。有关的信息 异常的起源和位置 可以使用异常识别 下面的堆栈跟踪。
装配负载跟踪:以下 信息可能有助于 确定为什么装配 'DotNetOpenAuth.Contracts' 不能 被加载。
警告:程序集绑定日志记录是 关掉。启用程序集绑定 失败记录,设置注册表 价值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 为 1。 注意:有一些 与相关的性能损失 程序集绑定失败日志记录。转 关闭此功能,删除注册表 价值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
堆栈跟踪:
[FileLoadException: 无法加载 文件或程序集 'DotNetOpenAuth.Contracts' 或其中之一 它的依赖关系。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (HRESULT 异常:0x80131045)]
[FileLoadException: 无法加载 文件或程序集 'DotNetOpenAuth.Contracts, 版本=3.4.6.11075,文化=中性, PublicKeyToken=2780ccd10d57b246' 或 它的依赖项之一。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (来自 HRESULT 的异常:0x80131045)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名、字符串代码库、证据 程序集安全、运行时程序集 locationHint、StackCrawlMark& stackMark,布尔值 throwOnFileNotFound,布尔值 forIntrospection,布尔值 抑制安全检查)+0
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName 装配参考,证据 组装安全,StackCrawlMark& stackMark, Boolean for Introspection, 布尔型抑制安全检查)+567
System.Reflection.RuntimeAssembly.InternalLoad(字符串 组装字符串,证据 组装安全,StackCrawlMark& stackMark, Boolean for Introspection) +192 System.Reflection.Assembly.Load(字符串 组装字符串)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 程序集名称,布尔型星指令) +118[ConfigurationErrorsException:可能 不加载文件或程序集 'DotNetOpenAuth.Contracts, 版本=3.4.6.11075,文化=中性, PublicKeyToken=2780ccd10d57b246' 或 它的依赖项之一。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (来自 HRESULT 的异常:0x80131045)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 程序集名称,布尔型星指令) +11396867 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +484 System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +127 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +280 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, 托管环境参数 托管参数,策略级别 政策级别,例外 appDomainCreationException) +1087[HttpException (0x80004005): 不能 加载文件或程序集 'DotNetOpenAuth.Contracts, 版本=3.4.6.11075,文化=中性, PublicKeyToken=2780ccd10d57b246' 或 它的依赖项之一。强大的名字 无法验证签名。这 组件可能已被篡改, 或者是延迟签署但未完全签署 用正确的私钥签名。 (来自 HRESULT 的异常:0x80131045)] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文)+11529072
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文)+141
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext 上下文)+4784373----------------------------------- --------------------------------- 版本信息:Microsoft .NET 框架版本:4.0.30319; ASP.NET 版本:4.0.30319.1
【问题讨论】:
标签: openid dotnetopenauth