DotNetOpenAuth OpenID Provider "The sequence contains more than one element"

I am having problems implementing my OpenID provider with DNOA 3.4.3. Everything was completely peachy until I needed AX support. I installed AXFetchAsSregTransform in a web configuration, as Andrew recommended at http://groups.google.com/group/dotnetopenid/browse_thread/thread/5629a24c0a7e8d99 . However, this led to the exception "Sequence contains more than one element" on my solve.aspx page, and I could not get past it.

The following line throws an exception:
Edit:. Oddly enough, this is not the line that throws the mistake anymore. The SendResponse () function now throws an exception

RequestsRequest requestFields = ProviderEndpoint.PendingRequest.GetExtension ();

ProviderEndpoint.SendResponse() 

Any thoughts on why this might be? Any help would be greatly appreciated!

The logs leading to the error are as follows:

  2010-04-28 12: 38: 20,247 (GMT-7) [5] INFO DotNetOpenAuth.Messaging.Channel - Scanning incoming request for messages: https: //myprovider/provider.ashx? Openid.ns = http% 3A% 2F % 2Fspecs.openid.net% 2Fauth% 2F2.0 & openid.claimed_id = http% 3A% 2F% 2Fspecs.openid.net% 2Fauth% 2F2.0% 2Fidentifier_select & openid.identity = http% 3A% 2F% 2Fspecs.openid.net% 2Fauth % 2F2.0% 2Fidentifier_select & openid.mode = checkid_setup & openid.ns.ext1 = http% 3A% 2F% 2Fopenid.net% 2Fsrv% 2Fax% 2F1.0 & openid.ext1.mode = fetch_request & openid.ext1.type.email = http% 3A% 2F % 2Faxschema.org% 2Fcontact% 2Femail & openid.ext1.type.fullname = http% 3A% 2F% 2Faxschema.org% 2FnamePerson & openid.ext1.type.language = http% 3A% 2F% 2Faxschema.org% 2Fpref% 2Flanguage & openidext1. = Email & openid.return_to = http% 3A% 2F% 2Fmyrelyingparty% 2Flogin.jsp% 3Foidreturn% 3D% 252
 2010-04-28 12: 38: 20,285 (GMT-7) [5] INFO DotNetOpenAuth.Messaging.Channel - Processing incoming CheckIdRequest (2.0) message:
     openid.claimed_id: http://specs.openid.net/auth/2.0/identifier_select
     openid.identity: http://specs.openid.net/auth/2.0/identifier_select
     openid.assoc_handle: {634080802953194640} {HxjFNw ==} {20}
     openid.return_to: http: //myrelyingparty/login.jsp? oidreturn =% 2Fhome
     openid.realm: http: // myrelyingparty /
     openid.mode: checkid_setup
     openid.ns: http://specs.openid.net/auth/2.0
     openid.ns.ext1: http://openid.net/srv/ax/1.0
     openid.ext1.mode: fetch_request
     openid.ext1.type.email: http://axschema.org/contact/email
     openid.ext1.type.fullname: http://axschema.org/namePerson
     openid.ext1.type.language: http://axschema.org/pref/language
     openid.ext1.required: email

 2010-04-28 12: 38: 22,773 (GMT-7) [14] INFO DotNetOpenAuth.Messaging.Channel - Scanning incoming request for messages: https: //myprovider/login.aspx? ReturnUrl =% 2fdecide.aspx
 2010-04-28 12: 38: 36,167 (GMT-7) [5] INFO DotNetOpenAuth.Messaging.Channel - Scanning incoming request for messages: https: //myprovider/login.aspx? ReturnUrl =% 2fdecide.aspx
 2010-04-28 12: 38: 38,147 (GMT-7) [14] ERROR DotNetOpenAuth.Messaging - Protocol error: An HTTP request to the realm URL (http: // myrelyingparty /) resulted in a redirect, which is not allowed during relying party discovery.
    at DotNetOpenAuth.Messaging.ErrorUtilities.VerifyProtocol (Boolean condition, String message, Object [] args)
    at DotNetOpenAuth.OpenId.Realm.Discover (IDirectWebRequestHandler requestHandler, Boolean allowRedirects)
    at DotNetOpenAuth.OpenId.Realm.DiscoverReturnToEndpoints (IDirectWebRequestHandler requestHandler, Boolean allowRedirects)
    at DotNetOpenAuth.OpenId.Provider.HostProcessedRequest.IsReturnUrlDiscoverableCore (OpenIdProvider provider)
    at DotNetOpenAuth.OpenId.Provider.HostProcessedRequest.IsReturnUrlDiscoverable (OpenIdProvider provider)
    at OpenIdProviderWebForms.decide.Page_Load (Object src, EventArgs e)
    at System.Web.Util.CalliHelper.EventArgFunctionCaller (IntPtr fp, Object o, Object t, EventArgs e)
    at System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Object sender, EventArgs e)
    at System.Web.UI.Control.OnLoad (EventArgs e)
    at System.Web.UI.Control.LoadRecursive ()
    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.ProcessRequest (HttpContext context)
    at ASP.decide_aspx.ProcessRequest (HttpContext context)
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
    at System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & completedSynchronously)
    at System.Web.HttpApplication.PipelineStepManager.ResumeSteps (Exception error)
    at System.Web.HttpApplication.BeginProcessRequestNotification (HttpContext context, AsyncCallback cb)
    at System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext context)
    at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
    at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
    at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)
    at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification (IntPtr managedHttpContext, IntPtr nativeRequestContext, IntPtr moduleData, Int32 flags)

 2010-04-28 12: 38: 38,149 (GMT-7) [14] INFO DotNetOpenAuth.Yadis - Relying party discovery at URL http: // myrelyingparty / failed.  DotNetOpenAuth.Messaging.ProtocolException: An HTTP request to the realm URL (http: // myrelyingparty /) resulted in a redirect, which is not allowed during relying party discovery.
    at DotNetOpenAuth.Messaging.ErrorUtilities.VerifyProtocol (Boolean condition, String message, Object [] args) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ Messaging \ ErrorUtilities.cs: line 235
    at DotNetOpenAuth.OpenId.Realm.Discover (IDirectWebRequestHandler requestHandler, Boolean allowRedirects) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenId \ Realm.cs: line6
    at DotNetOpenAuth.OpenId.Realm.DiscoverReturnToEndpoints (IDirectWebRequestHandler requestHandler, Boolean allowRedirects) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenIdI OpenId
    at DotNetOpenAuth.OpenId.Provider.HostProcessedRequest.IsReturnUrlDiscoverableCore (OpenIdProvider provider) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenId \ Provider \ HostPRe
 2010-04-28 12: 38: 42,076 (GMT-7) [8] ERROR OpenIdProviderWebForms.Global - An unhandled exception was raised.  Details follow: System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown.  ---> System.InvalidOperationException: Sequence contains more than one element
    at System.Linq.Enumerable.SingleOrDefault [TSource] (IEnumerable`1 source)
    at DotNetOpenAuth.OpenId.Provider.Request.GetExtension [T] () in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenId \ Provider \ Request.cs: line 176
    at DotNetOpenAuth.OpenId.Extensions.ExtensionsInteropHelper.ConvertSregToMatchRequest (IHostProcessedRequest request) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenIdInterelel Extensions 180 Extensions
    at DotNetOpenAuth.OpenId.Behaviors.AXFetchAsSregTransform.DotNetOpenAuth.OpenId.Provider.IProviderBehavior.OnOutgoingResponse (IAuthenticationRequest request) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68bpa33tpchaetpcha33p33a33cbca33cfafc3aaaaaaaaaa ...
    at DotNetOpenAuth.OpenId.Provider.OpenIdProvider.ApplyBehaviorsToResponse (IRequest request) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenId \ Provider \ OpenIdProv2
    at DotNetOpenAuth.OpenId.Provider.OpenIdProvider.SendResponse (IRequest request) in c: \ TeamCity \ buildAgent \ work \ bf9e2ca68b75a334 \ src \ DotNetOpenAuth \ OpenId \ Provider \ OpenIdProvider.cs: line 325
    at OpenIdProviderWebForms.decide.Yes_Click (Object sender, EventArgs e) in C: \ Projects \ OpenIdProviderWebForms \ decide.aspx.cs: line 130
    at System.Web.UI.WebControls.Button.OnClick (EventArgs e)
    at System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument)
    at System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler sourceControl, String eventArgument)
    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.ProcessRequest (HttpContext context)
    at ASP.decide_aspx.ProcessRequest (HttpContext context) in c: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ root \ 7f580b93 \ b3e4d917 \ App_Web_tulh9ymv.1.cs: line 0
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute ()
    at System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & completedSynchronously)
+4
source share
1 answer

Unfortunately. You found an error in DotNetOpenAuth.

Fixed in v3.2 as 7cea654 and v3. 4 as bd7c148 . You can get the fix in build tomorrow .

+2
source

Source: https://habr.com/ru/post/1308181/


All Articles