使用OpenID for Multilingual网站登录雅虎

时间:2013-04-22 12:07:44

标签: javascript asp.net openid socialauth

我正在为我的网站整合雅虎开放ID。我的网站正在运行不同的语言(en,jp,cn等)。当我尝试使用yahoo opend ID从英文网站登录然后它很好,但是当我从日本或中国网站尝试相同时,它不会将我重定向到yahoo open id login。

每次我从javascript获得以下错误

  

错误:纯文本文档的字符编码不是   声明。该文档将在某些浏览器中使用乱码文本进行渲染   如果文档包含来自外部的字符,则配置   US-ASCII范围。文件的字符编码需要   在传输协议或文件中声明需要使用字节顺序   标记为编码签名。源文件:   http://uatstorefrontjpcr.mobi-book.com/ReturnFromSocial/LogOnYahoo   行:0

任何人都可以建议做什么。

我为此目的使用了SocialAuth-net.dll。我在web.config中设置了所有必需的包装器。谷歌和Facebook开放ID也可以使用相同的编码。

1 个答案:

答案 0 :(得分:0)

您的网络服务器可能会发回Content-Type text/plain的回复。当Web浏览器收到具有该内容类型的响应时,它不知道应该使用什么编码来解码它;由于你没有告诉它如何解码它,不同的浏览器可能会选择不同的方式。

解决方案是提供显式编码。例如,如果您知道文本是UTF-8编码的,那么您可以在标题中提供它,如下所示:

Content-Type: text/plain; charset=UTF-8

根据W3C的an informational page,你可以让ASP.Net使用Response.ContentEncoding在标题中包含该位。再次使用UTF-8作为示例,您可以这样设置:

Response.ContentEncoding = Encoding.UTF8;