SSOBinding

Jul 16, 2012 at 11:32 AM
In de SSOBinding bij het toevoegen van een nieuwe sessionbehavoir:
 ws.Endpoint.Behaviors.Add(New SessionBehavior(cert, New TimeSpan(1, 0, 0), NothingNothing))
In versie 1.0.03 waren er maar 2 variabelen (certifcaat, timespan)
Nu zijn er 2 extra (Cache as type, config as xmldocument). 
Welke waarden moeten deze hebben?
Coordinator
Jul 17, 2012 at 10:32 AM

voor de cache zijn er 2 voorzien, een die gewoon in memory zet en een die via bestanden werkt. indien je niet zeker bent neem je best de memory (ik weet niet of er een default is, ben op vakantie). de memory cache geeft geen config, dus die mag je leeg laten.

Jul 19, 2012 at 9:06 AM

Ik heb nu volgende toegevoegd in de code:

 Dim cache As New Siemens.EHealth.Client.Sso.Configuration.CacheElement
 cache.Type = "Siemens.EHealth.Client.Sso.MemorySessionCache"
 
 ws.Endpoint.Behaviors.Add(New SessionBehavior(cert, New TimeSpan(1, 0, 0), cache.GetType, Nothing))


Maar daarop krijg ik nu volgende foutmelding:

Constructor on type 'Siemens.EHealth.Client.Sso.Configuration.CacheElement' not found.

Server stack trace:
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Siemens.EHealth.Client.Sso.SsoSecurityTokenProvider.GetTokenCore(TimeSpan timeout)
   at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)
   at System.ServiceModel.Security.SecurityProtocol.GetToken(SecurityTokenProvider provider, EndpointAddress target, TimeSpan timeout)
   at System.ServiceModel.Security.AsymmetricSecurityProtocol.TryGetTokenSynchronouslyForOutgoingSecurity(Message message, SecurityProtocolCorrelationState correlationState, Boolean isBlockingCall, TimeSpan timeout, SecurityToken& encryptingToken, SecurityToken& signingToken, IList`1& supportingTokens, SecurityProtocolCorrelationState& newCorrelationState)
   at System.ServiceModel.Security.AsymmetricSecurityProtocol.SecureOutgoingMessageCore(Message& message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState)
   at System.ServiceModel.Security.MessageSecurityProtocol.SecureOutgoingMessage(Message& message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState)
   at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at XCarenet.wsCarenet.GenericInsurabilityPortType.getInsurabilityAsFlat(getInsurabilityAsFlatRequest request)
   at XCarenet.wsCarenet.GenericInsurabilityPortTypeClient.wsCarenet_GenericInsurabilityPortType_getInsurabilityAsFlat(getInsurabilityAsFlatRequest request) in D:\Programs\XCarenet\XCarenet\Service References\wsCarenet\Reference.vb:line 3344
   at XCarenet.wsCarenet.GenericInsurabilityPortTypeClient.getInsurabilityAsFlat(GetInsurabilityAsXmlOrFlatRequestType GetInsurabilityAsFlatRequest1) in D:\Programs\XCarenet\XCarenet\Service References\wsCarenet\Reference.vb:line 3350
   at XCarenet.Carenet.SendCareNet(String msgList) in D:\Programs\XCarenet\XCarenet\Carenet.vb:line 673

 

Coordinator
Jul 20, 2012 at 10:09 AM
Je hebt cacheelement niet nodig, gebruik de string met het cachtype direct als param.
Jul 23, 2012 at 7:10 AM

Gewoon de string doorgeven?

ws.Endpoint.Behaviors.Add(New SessionBehavior(cert, New TimeSpan(1, 0, 0), "Siemens.EHealth.Client.Sso.MemorySessionCache"Nothing))

Dan krijg ik de foutmelding dat de string niet geconverteerd kan worden naar een system.type.
Doe ik het volgende:

ws.Endpoint.Behaviors.Add(New SessionBehavior(cert, New TimeSpan(1, 0, 0), Siemens.EHealth.Client.Sso.MemorySessionCache, Nothing))

Dan komt de melding dat ik die niet kan gebruiken omdat deze als Friend staat gedeclareerd.

Coordinator
Jul 25, 2012 at 10:16 AM
Ja, je moet het type doorgeven. De fout die je krijgt is een bug, zal die fixen. Je mag opcodeplex een bug aanmaken. Zal binnen de week opgelost zijn.
Aug 8, 2012 at 8:09 AM

Workitem is aangemaakt:

http://ehi.codeplex.com/workitem/1474