TInt CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx)
    {
        TLSLOG(KSenCoreServiceManagerLogChannelBase  , KMinLogLevel,(_L("CWSStarEnveloperHandler::InvokeL(MSenMessageContext& aCtx)")));
        const TInt* soapVersion = aCtx.GetIntL(WSStarContextKeys::KSoapVersion);
        const TDesC8* securityVersion = iHandlerContext.GetDesC8L(HandlerContextKey::KVersion);
        CSenSoapMessage* message;
        TPtrC8 secVersion(KSecurityXmlNs);
        if (securityVersion
            && (*securityVersion == KSecuritySchemeXmlNs || *securityVersion == KSecurityXmlNs))
            {
            secVersion.Set(*securityVersion);
            }
        if (soapVersion)
            {
            //old SOAP version force to use old sec spec
            if ((TSOAPVersion)*soapVersion == ESOAP11)
                {
                secVersion.Set(KSecuritySchemeXmlNs);
                }
            message = CSenSoapMessage::NewL((TSOAPVersion)*soapVersion, secVersion);
            }
        else
            {
            message = CSenSoapMessage::NewL(ESOAP12, secVersion);
            ((MSenContext&)aCtx).Add(WSStarContextKeys::KSoapVersion,ESOAP12);        
            }
        CleanupStack::PushL(message);    
        CSenElement* elemBody = 
            const_cast<CSenElement*>(aCtx.GetSenElementL(WSStarContextKeys::KBodyElement));
        if (elemBody)
            {
            message->BodyL().AddElementL(*elemBody);
            aCtx.Remove(WSStarContextKeys::KBodyElement);
            }
        else
            {
            const TDesC8* content = aCtx.GetDesC8L(WSStarContextKeys::KBody);
            if (content)
                {
                message->SetBodyL(*content);
                }
            }
        CleanupStack::Pop(message);
        aCtx.Update(SenContext::KSenCurrentSoapMessageCtxKey, message);
        return KErrNone;
    }
TInt CSupLoginServiceProvider::RequestMemberID(const TDesC8 &aRequestUsername, const TDesC8 &aRequestPassword)
{
	__LOGSTR_TOFILE("CSupLoginServiceProvider::RequestMemberID() begins");

	// If current operation should be cancelled
	if (iCancelStatus)
		return KErrCancel;

	// Create empty SOAP message to hold the controller application
	CSenSoapMessage* soapRequest = CSenSoapMessage::NewL();
	CleanupStack::PushL(soapRequest);

	// Set SOAP action HTTP header
	soapRequest->SetSoapActionL(KSoapActionMemberId);

	// Get handle to SOAP body element
	CSenElement& messageBody = soapRequest->BodyL();

	// Add new GetMemberID element into SOAP body
	CSenElement& memberidRequest =  messageBody.AddElementL(KServiceXmlns,
		_L8("GetMemberID"));

	// Add username child element into the SOAP body
	CSenElement& usernameString = memberidRequest.AddElementL(_L8("NickName"));
	usernameString.SetContentL( aRequestUsername );

	// Add password element to the request
	CSenElement& passwordString = memberidRequest.AddElementL(_L8("WebPassword"));
	passwordString.SetContentL( aRequestPassword );

	// Submit SOAP async request
	TInt retValue = iConnection->SendL(*soapRequest);

	CleanupStack::PopAndDestroy(); // soapRequest

	__LOGSTR_TOFILE("CSupLoginServiceProvider::RequestMemberID() ends");

	return retValue;
}