Welcome Guest Search | Active Topics | Sign In | Register

CallbackPanel error when using WSFederation Options
Jim
Posted: Friday, March 31, 2017 8:28:08 AM
Rank: Member
Groups: Member

Joined: 1/16/2009
Posts: 22
We have several pages in our application with the eoCallbackPanel. Once we went to single sign on using WSFederation, ADFS, any triggering control that attempts to perform a postback gets the error below. We don't see this issue with other eo controls like the grid.

<eo:CallbackPanel ID="cbpSiteInfo" runat="server" Width="100%" CssClass="eo_panel" Triggers="{ControlID:txtAIID;Parameter:},{ControlID:eoWaste;Parameter:},{ControlID:ddlLandFill;Parameter:},{ControlID:ddlYear;Parameter:},{ControlID:ddlReportingQuarter;Parameter:}" OnExecute="cbpSiteInfo_Execute" > <!--ClientSideAfterExecute="SetFocusAI"-->


ERROR 2017-03-30 17:13:12,105 1018066ms Global Application_Error - Error: (no guid)System.ArgumentNullException: Value cannot be null.
Parameter name: parameter
at Microsoft.IdentityModel.Protocols.AuthenticationProtocolMessage.SetParameter(String parameter, String value) in c:\workspace\WilsonForDotNet45Release\src\Microsoft.IdentityModel.Protocol.Extensions\AuthenticationProtocolMessage.cs:line 205
at Microsoft.IdentityModel.Protocols.WsFederationMessage..ctor(IEnumerable`1 parameters) in c:\workspace\WilsonForDotNet45Release\src\Microsoft.IdentityModel.Protocol.Extensions\WsFederationMessage.cs:line 112
at Microsoft.Owin.Security.WsFederation.WsFederationAuthenticationHandler.<AuthenticateCoreAsync>d__1f.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Owin.Security.Infrastructure.AuthenticationHandler.<BaseInitializeAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Owin.Security.Infrastructure.AuthenticationMiddleware`1.<Invoke>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.<RunApp>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.<DoFinalWork>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar)
at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Thanks.
eo_support
Posted: Monday, April 3, 2017 8:50:33 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,229
Hi,

You may want to try replacing CallbackPanel with MS's UpdatePanel. The reason is while CallbackPanel works for most controls, some controls that have specific logic that depends on a control's life cycle may needs to be "AJAX aware" since an AJAX update alters the control's client side life cycle. For example, a traditional control only performs client side initialization once during page load, however when a control is being AJAX updated, it may need to initialize every time it's being AJAX updated. Such changes requires the control to be aware that it has been AJAX updated and it requires coordination between the AJAX panel and the control. Since UpdatePanel is from Microsoft, more controls are coded to recognize it than our CallbackPanel. As such it's possible that the control works with UpdatePanel but not CallbackPanel.

Thanks!
Jim
Posted: Monday, April 3, 2017 8:58:22 AM
Rank: Member
Groups: Member

Joined: 1/16/2009
Posts: 22
That sounds like a bug to me... May I ask what steps you performed to research this issue?
eo_support
Posted: Monday, April 3, 2017 9:11:20 AM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,229
We've had such issues before and there is virtually nothing we can do in such case. The key is the control needs to communicate to the AJAX panel so that it can be aware of an AJAX update has occurred in order to act accordingly. So if the control does not talk to us (since they do not know us) there is no way for our panel and the control to work together. Because the UpdatePanel is from Microsoft, most MS's own control and other third party control knows about it and is prepared to communicate to the UpdatePanel (through its published events). We would love to make our CallbackPanel to work with them but the unfortunate truth is we are just another third party vendor out there and it is not practical for the controls to align to us. The result is the controls are more and more aligned to Microsoft's UpdatePanel (despite that our CallbackPanel is on the market before the UpdatePanel). So your best option is to switch to the UpdatePanel if you run into any AJAX update problems. This is not because we do not want to "fix" such issue for you, this is purely from a technical point of view that using UpdatePanel would give you the best chance of resolving such issues since it is very well known out there.


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.