首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DotnetopenAuth抛出"ProtocolException“

DotnetopenAuth抛出"ProtocolException“
EN

Stack Overflow用户
提问于 2011-06-07 21:31:12
回答 2查看 4.4K关注 0票数 3

我正在尝试用ASP.NET MVC实现OpeinID登录。我正在尝试遵循http://blog.nerdbank.net/2008/04/add-openid-login-support-to-your-aspnet.html中给出的步骤

下面是我的设置web.config

代码语言:javascript
复制
<dotNetOpenAuth>
<messaging>
    <untrustedWebRequest>
        <whitelistHosts>
            <add name="localhost" />
        </whitelistHosts>
    </untrustedWebRequest>
</messaging>
<reporting enabled="false" />

代码语言:javascript
复制
<system.net>
<defaultProxy useDefaultCredentials="true">
    <proxy autoDetect="True" usesystemdefault="True"/>
</defaultProxy>

当我尝试创建一个请求时,我得到一个'ProtocolException‘提示'No openId end’。

代码语言:javascript
复制
try 
{
    //ProtocolException is thrown
    IAuthenticationRequest request = openID.CreateRequest(openid_identifier); 
    request.RedirectToProvider();
}
catch (ProtocolException )
{
    throw;
}

由Dotnetopenauth生成的日志文件。(我已经用<myopenid>替换了我的有效用户I)

代码语言:javascript
复制
    {INFO}06/07 17:24:45 - Performing discovery on user-supplied identifier: http://<myopenid>.myopenid.com/
{DEBUG}06/07 17:24:45 - Filtering and sorting of endpoints did not affect the list.
{INFO}06/07 17:30:03 - DotNetOpenAuth, Version=3.4.7.11121, Culture=neutral, PublicKeyToken=2780ccd10d57b246 (official)
{INFO}06/07 17:30:03 - Scanning incoming request for messages: http://localhost/OpenID/User/Authenticate
{DEBUG}06/07 17:30:03 - Incoming HTTP request: POST http://localhost/OpenID/User/Authenticate
{DEBUG}06/07 17:30:31 - .NET Uri class path compression overridden.
{DEBUG}06/07 17:30:31 - HTTP GET http://<myopenid>.myopenid.com/
{ERROR}06/07 17:30:55 - WebException ConnectFailure from http://<myopenid>.myopenid.com/, no response available.
{ERROR}06/07 17:30:55 - Error while performing discovery on: "http://<myopenid>.myopenid.com/": DotNetOpenAuth.Messaging.ProtocolException: Error occurred while sending a direct message or getting the response. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 50.16.193.31:80
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetResponse()
   at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(HttpWebRequest request, DirectWebRequestOptions options)
   --- End of inner exception stack trace ---
   at DotNetOpenAuth.Messaging.StandardWebRequestHandler.GetResponse(HttpWebRequest request, DirectWebRequestOptions options)
   at DotNetOpenAuth.Messaging.UntrustedWebRequestHandler.GetResponse(HttpWebRequest request, DirectWebRequestOptions options)
   at DotNetOpenAuth.Yadis.Yadis.Request(IDirectWebRequestHandler requestHandler, Uri uri, Boolean requireSsl, String[] acceptTypes)
   at DotNetOpenAuth.Yadis.Yadis.Discover(IDirectWebRequestHandler requestHandler, UriIdentifier uri, Boolean requireSsl)
   at DotNetOpenAuth.OpenId.UriDiscoveryService.Discover(Identifier identifier, IDirectWebRequestHandler requestHandler, Boolean& abortDiscoveryChain)
   at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingParty.Discover(Identifier identifier)
   at DotNetOpenAuth.OpenId.RelyingParty.AuthenticationRequest.Create(Identifier userSuppliedIdentifier, OpenIdRelyingParty relyingParty, Realm realm, Uri returnToUrl, Boolean createNewAssociationsAsNeeded)

然后我检查了fiddler,我发现没有生成获取URI的请求。看起来dotnetopenauth不能生成请求并且在那里失败。

有谁能帮帮我吗?我遗漏了什么吗?

我在代理后面工作。

EN

回答 2

Stack Overflow用户

发布于 2012-08-23 22:21:26

我只能建议你写一个简单的C#控制台应用程序,它使用HttpWebRequest从你输入到DotNetOpenAuth中的OpenID地址下载页面,这样你就可以自己看到故障,并诊断你的防火墙/代理设置出了什么问题。

票数 1
EN

Stack Overflow用户

发布于 2013-01-15 11:44:14

我遇到了和你一样的问题,如果我删除了代理自动检测,它就会起作用。因此,在web.config system.net部分中,仅:

这种配置允许我在公司代理服务器后面工作,也可以使用Fiddler。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6265944

复制
相关文章

相似问题

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