/// <summary> /// Activates a previously created session or transfers the session to a new secure channel. /// </summary> public ActivateSessionResponseMessage ActivateSession(ActivateSessionMessage request) { try { lock (m_lock) { // verify that the session is still valid. Session session = VerifySession(request.RequestHeader, true); // validate the client and return a new nonce that can be used for subsequent calls to activate. byte[] serverNonce = session.Activate( request.ClientSignature, request.LocaleIds, request.UserIdentityToken, request.UserTokenSignature); // construct the response. ActivateSessionResponseMessage response = new ActivateSessionResponseMessage(); response.ResponseHeader = CreateResponseHeader(request.RequestHeader); response.ServerNonce = serverNonce; response.Results = new ListOfStatusCode(); response.DiagnosticInfos = new ListOfDiagnosticInfo(); return response; } } catch (Exception e) { throw CreateSoapFault(request.RequestHeader, e); } }