asp.net-mvc – DotNetOpenAuth:消息签名不正确
发布时间:2020-12-15 18:56:58 所属栏目:asp.Net 来源:网络整理
导读:尝试使用MyOpenID和Yahoo进行身份验证时,我会收到一条“消息签名不正确”异常. 我几乎使用了DotNetOpenAuth 3.4.2附带的ASP.NET MVC示例代码 public ActionResult Authenticate(string openid){ var openIdRelyingParty = new OpenIdRelyingParty(); var aut
尝试使用MyOpenID和Yahoo进行身份验证时,我会收到一条“消息签名不正确”异常.
我几乎使用了DotNetOpenAuth 3.4.2附带的ASP.NET MVC示例代码 public ActionResult Authenticate(string openid) { var openIdRelyingParty = new OpenIdRelyingParty(); var authenticationResponse = openIdRelyingParty.GetResponse(); if (authenticationResponse == null) { // Stage 2: User submitting identifier Identifier identifier; if (Identifier.TryParse(openid,out identifier)) { var realm = new Realm(Request.Url.Root() + "openid"); var authenticationRequest = openIdRelyingParty.CreateRequest(openid,realm); authenticationRequest.RedirectToProvider(); } else { return RedirectToAction("login","home"); } } else { // Stage 3: OpenID provider sending assertion response switch (authenticationResponse.Status) { case AuthenticationStatus.Authenticated: { // TODO } case AuthenticationStatus.Failed: { throw authenticationResponse.Exception; } } } return new EmptyResult(); } 与Google,AOL等人合作.但是,雅虎和MyOpenID属于AuthenticationStatus.Failed案例,但出现以下异常: DotNetOpenAuth.Messaging.Bindings.InvalidSignatureException: Message signature was incorrect. at DotNetOpenAuth.OpenId.ChannelElements.SigningBindingElement.ProcessIncomingMessage(IProtocolMessage message) in c:UsersandarnogitdotnetopenidsrcDotNetOpenAuthOpenIdChannelElementsSigningBindingElement.cs:line 139 at DotNetOpenAuth.Messaging.Channel.ProcessIncomingMessage(IProtocolMessage message) in c:UsersandarnogitdotnetopenidsrcDotNetOpenAuthMessagingChannel.cs:line 992 at DotNetOpenAuth.OpenId.ChannelElements.OpenIdChannel.ProcessIncomingMessage(IProtocolMessage message) in c:UsersandarnogitdotnetopenidsrcDotNetOpenAuthOpenIdChannelElementsOpenIdChannel.cs:line 172 at DotNetOpenAuth.Messaging.Channel.ReadFromRequest(HttpRequestInfo httpRequest) in c:UsersandarnogitdotnetopenidsrcDotNetOpenAuthMessagingChannel.cs:line 386 at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.GetResponse(HttpRequestInfo httpRequestInfo) in c:UsersandarnogitdotnetopenidsrcDotNetOpenAuthOpenIdRelyingPartyOpenIdRelyingParty.cs:line 540 显示其他人有同样的问题:http://trac.dotnetopenauth.net:8000/ticket/172 有没有人有解决方法? 解决方法
事实证明,这是在Web场环境中使用DotNetOpenAuth的问题.
当您创建OpenIdRelyingParty时,请确保在构造函数中传递null. 这将使您的网站进入OpenID无状态或“哑”模式.用户登录稍慢一些(如果您注意到),但您避免不必编写一个IRelyingPartyApplicationStore来允许DotNetOpenAuth在您的农场中工作; var openIdRelyingParty = new OpenIdRelyingParty(null); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 安装程序 – 无法安装ASP.NET MVC3 RTM?
- asp.net-mvc – 在默认路由的ASP.NET MVC中的Url.Content的
- asp.net-mvc – ViewBag的重点是什么?
- ASP.NET第一次访问慢的解决方法(MVC,Web Api)
- asp.net – Controller.Execute呈现为没有内容类型的文本文
- asp.net-mvc-3 – mvc3中的默认页面在哪里?
- .net – 为什么要使用asp:HyperLink
- I can 前端-07 ASP.NET 常用对象
- asp.net-mvc-3 – EntityFramework类的AllowHtml属性
- asp.net – 如何访问在global.asax.cs中创建的属性?
推荐文章
站长推荐
- asp.net-mvc – MVC:如何将/sitemap.xml路由到A
- entity-framework – Entityframework Mapping问
- asp.net通过kerberos集成windows身份验证到sql s
- asp.net-mvc-3 – 与SQL Server建立连接时发生与
- asp.net-mvc – 将ASP.NET应用程序部署到多个EC2
- asp.net-core – ASP.NET Core 1.1中的multipart
- asp.net – 自动化Web应用前端性能测试的替代方案
- ASP.NET:如何从javascript访问转发器生成的元素
- asp.net-mvc – 以mvc形式发布数组
- asp.net – 在现有系统上重构可测试性
热点阅读