ComponentSpace

Forums



The attribute value type System.String cannot be serialized


The attribute value type System.String cannot be serialized

Author
Message
wurstwasser
wurstwasser
New Member
New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)

Group: Forum Members
Posts: 4, Visits: 12
Hi,
we created a small MVC project to host a saml 2.0 "fake" identity provider to run tests against. We are using this "fake" idp to tests our service provider implementation. Our "fake" IDP is based on the example project that came with the installation of the Saml Component.
Running the fake IDP project on localhost (IIS 7.5) is working (most of the time) however when deploying it to one of our development servers and testing against it we get the following exception regularly. The fake IDP seems to work for one or two  requests however then it only throws these exception:

Server Error in '/sso-saml' Application.

The attribute value type System.String cannot be serialized.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: ComponentSpace.SAML2.Exceptions.SAMLSerializationException: The attribute value type System.String cannot be serialized.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SAMLSerializationException: The attribute value type System.String cannot be serialized.]   ComponentSpace.SAML2.Assertions.XmlAttributeValueSerializer.Serialize(XmlElement parentElement, Object attributeValue) +417   ComponentSpace.SAML2.Assertions.AttributeValue.ToXml(XmlDocument xmlDocument, IAttributeValueSerializer attributeValueSerializer) +804   ComponentSpace.SAML2.Assertions.AttributeType.ToXml(XmlElement xmlElement) +326   ComponentSpace.SAML2.Assertions.SAMLAttribute.ToXml(XmlDocument xmlDocument) +82   ComponentSpace.SAML2.Assertions.AttributeStatement.ToXml(XmlDocument xmlDocument) +210   ComponentSpace.SAML2.Assertions.SAMLAssertion.ToXml(XmlDocument xmlDocument) +840   ComponentSpace.SAML2.InternalSAMLIdentityProvider.CreateSAMLResponse(String userName, SAMLAttribute[] attributes, String statusCode, String statusMessage) +333   ComponentSpace.SAML2.InternalSAMLIdentityProvider.SendSSO(HttpResponseBase httpResponse, String userName, SAMLAttribute[] attributes, String statusCode, String statusMessage) +238   ComponentSpace.SAML2.InternalSAMLIdentityProvider.SendSSO(HttpResponseBase httpResponse, String userName, SAMLAttribute[] attributes) +27   companyname.TestServices.SSO.Saml.Controllers.SingleSignOnController.SendSamlResponse(Dictionary`2 userAttributes, String userName) in c:\SourceCode\development\BackEnd\companyname.TestServices.SSO.Saml\Controllers\SingleSignOnController.cs:52   companyname.TestServices.SSO.Saml.Controllers.SingleSignOnController.LoadUser(String userName) in c:\SourceCode\development\BackEnd\companyname.TestServices.SSO.Saml\Controllers\SingleSignOnController.cs:66   lambda_method(Closure , ControllerBase , Object[] ) +127   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +242   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39   System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +12   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +139   System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c() +112   System.Web.Mvc.Async.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e() +452   System.Web.Mvc.Async.<>c__DisplayClass30.<BeginInvokeActionMethodWithFilters>b__2f(IAsyncResult asyncResult) +15   System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +37   System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +241   System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +111   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +53   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +19   System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +51   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +111   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34237


We experienced the same problem on localhost already as well - however the problem is very seldom there.

It seems the component does not come along with the data in Dictionary<string, string> although we are sending the same test data in the dictionary. Sometimes it is working, sometimes not. Please help.

Tags
wurstwasser
wurstwasser
New Member
New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)New Member (26 reputation)

Group: Forum Members
Posts: 4, Visits: 12
it seems that i could fix the problem.

unfortunately the dictionary<string, string> that you can pass to SendSSO does not check its attributes really.
i now pass a SAMLAttributes attray, specifing the type: xs-anyType explicitlyto get its value written in between cdata tags

GO


Similar Topics


Execution: 0.000. 2 queries. Compression Enabled.
Login
Existing Account
Email Address:


Password:


Select a Forum....












Forums, Documentation & Knowledge Base - ComponentSpace


Search