【问题标题】:DotNetOpenId problem when publishing it发布时出现 DotNetOpenId 问题
【发布时间】:2010-08-13 15:54:43
【问题描述】:

我有以下问题: 我在 C# 上开发了 OpenID 身份验证系统,它在我的 LocalHost 上运行良好,但是当我发布它时,我不断收到此错误消息,我该怎么办? 谢谢!

Error:System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> DotNetOpenAuth.Messaging.ProtocolException: No OpenID endpoint found.
   at DotNetOpenAuth.Messaging.ErrorUtilities.VerifyProtocol(Boolean condition, String message, Object[] args)
   at DotNetOpenAuth.OpenId.RelyingParty.OpenIdRelyingPartyControlBase.LogOn()
   at WikiLoader.Login.OpenId_Click(Object sender, CommandEventArgs e)
   at System.Web.UI.WebControls.ImageButton.OnCommand(CommandEventArgs e)
   at System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   --- End of inner exception stack trace ---
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Source: System.Web

Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.

Stack trace:    at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.login_aspx.ProcessRequest(HttpContext context) 
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

【问题讨论】:

  • 发现有问题。您确定它可以连接到身份网址吗? (可能会导致问题,例如,如果您使用 http://localhost/openid 作为标识符,而 RP 位于 localhost 以外的其他位置)仅凭您提供的数据无法告诉您更多信息。
  • 嗯,它只使用 Google、Yahoo、Chi.mp 和 MyOpenID 作为标识符。我没有使用 localhost 作为标识符。我的代码如下: //要求登录,或停止使用。 openIDLogin.LoggedIn += new EventHandler(openIDLogin_LoggedIn);

标签: asp.net iis openid dotnetopenauth


【解决方案1】:

Turn on logging 看看他们告诉你什么。

这通常是因为您的生产服务器有一个保护措施(防火墙、代理等)来阻止传出的 HTTP 请求,这当然是 OpenID 需要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多