首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Visual Studio2010上使用Ajax的DotNetOpenAuth .NET 4问题

Visual Studio2010上使用Ajax的DotNetOpenAuth .NET 4问题
EN

Stack Overflow用户
提问于 2010-07-01 01:07:35
回答 2查看 743关注 0票数 0

我一直在我们的登录页面上使用DotNetOpenAuth的"OpenIdTextBox“控件。我们使用VS2008+ .NET 3.5 + Ajax UpdatePanel没有任何问题。

今天我们尝试将整个项目升级到VS2010+ .NET 4.0,当Ajax UpdatePanel重定向到提供商(比如谷歌)登录时,它会给我一个javascript错误。

"Sys.WebForms.PageRequestManagerParserErrorException:无法分析从服务器收到的消息。出现此错误的常见原因是调用Response.Write()修改响应、启用响应筛选器、HttpModules或服务器跟踪

有没有什么设置可以让我这样做?奇怪的是。它适用于VS2008+ .NET 3.5。谢谢……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-01 03:53:10

我不知道UpdatePanel是如何工作的,但是OpenIdTextBox控件需要能够将整个浏览器文档重定向到另一个UpdatePanel,这可能是UpdatePanel不允许的,因为它只希望内容响应更新网页的一小部分。因此,也许OpenIdTextBox与UpdatePanel在根本上是不兼容的--这只是一个猜测。

我想知道您是否可以在处理页面时在服务器端选择禁用UpdatePanel的优化,例如是否触发了OpenIdTextBox_LoggingIn事件。

当然,你也可以将文本框移到UpdatePanel之外,但也许不能在保持yoru网页外观的同时做到这一点。

我可以告诉你如何重写OpenIdTextBox重定向网页的方式,但是你可能做的任何等价的事情都可能会遇到同样的问题。

票数 1
EN

Stack Overflow用户

发布于 2010-07-06 02:12:19

谢谢安德鲁!它起作用了(我正在回复我自己的帖子)。基本上,我使用"Response.RedirectLocation“解决了这个Ajax问题。

根据一些文章,这是一个Ajax友好的调用,出于某些原因,我不能确切地知道有什么不同,因为我猜"e.Request.RedirectingResponse“做的是同样的事情。无论如何,我随后扩展了"RedirecingResponse“头中的位置。我测试了8个提供商,它似乎起作用了!

代码语言:javascript
代码运行次数:0
运行
复制
e.Cancel = true; 
OutgoingWebResponse webResponse = e.Request.RedirectingResponse; 
string location = webResponse.Headers["Location"]; 
Response.RedirectLocation = location; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3151615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档