/// <summary> /// Encodes the Wulka context. /// </summary> /// <param name="ctx">The CTX.</param> /// <param name="reply">The reply.</param> internal static void EncodeWulkaContext(WulkaContext ctx, ref Message reply) { foreach (string key in ctx.Keys) { reply.Headers.Add(MessageHeader.CreateHeader(key, ServiceConst.ContextNamespace, ctx[key])); } }
public bool Validate(string userName, string sessionId) { var clt = Client; WulkaContext c = WulkaContext.Current; var b = clt.Validate(userName, sessionId); return(b); }
/// <summary> /// Determines whether [is validated session]. /// </summary> /// <returns> /// <c>true</c> if [is validated session]; otherwise, <c>false</c>. /// </returns> private static bool IsValidatedSession(WulkaContext ctxt) { if (ctxt != null) { return(ctxt.Keys.Contains(WulkaContextKey.UserName) && ctxt.Keys.Contains(WulkaContextKey.SessionId)); } return(false); }
/// <summary> /// Sends the shell context. /// </summary> /// <param name="context">The context.</param> public void SetContext(WulkaContext context) { if (OnSetContext != null) { OnSetContext(this, new SetContextEventArgs { Context = context }); } }
/// <summary> /// Sends the context to applet. /// </summary> /// <param name="context">The context.</param> /// <param name="appletEndpointAddress">The applet endpoint address.</param> public void SendContextToApplet(WulkaContext context, string appletEndpointAddress) { try { Logger.Info("Sending Shell Context @ {1}...", appletEndpointAddress); var binding = new NetNamedPipeBinding(NetNamedPipeSecurityMode.None); var pipeFactory = new ChannelFactory <IPlugin>(binding, new EndpointAddress(appletEndpointAddress)); IPlugin pipeProxy = pipeFactory.CreateChannel(); pipeProxy.SetContext(context); Logger.Info("Sent Shell Context @ {1}", appletEndpointAddress); } catch (Exception exception) { Logger.Error(exception.GetCombinedMessages()); } }
/// <summary> /// Adds the Wulka credentials internal. /// </summary> /// <param name="inst">The inst.</param> /// <param name="context">The p MS context.</param> /// <param name="credentials">The credentials.</param> protected virtual void AddWulkaCredentialsInternal(object inst, WulkaContext context, CredentialsBase credentials) { if (credentials != null) { switch (credentials.CredentialType) { case CredentialsTypeEnum.UserNamePassword: { var cred = credentials as UserNamePasswordCredentials; context.Add(WulkaContextKey.UserName, cred.UserName); context.Add(WulkaContextKey.PasswordEnc, CryptoEngine.Encrypt(cred.Password)); GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new UserNamePasswordMessageInspector(cred.UserName, cred.Password))); break; } case CredentialsTypeEnum.UserNameSession: { var creds = credentials as UserNameSessionCredentials; context.Add(WulkaContextKey.UserName, creds.UserName); context.Add(WulkaContextKey.SessionId, creds.Session); GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new UserNameSessionMessageInspector(creds.UserName, creds.Session))); break; } case CredentialsTypeEnum.Extended: { var crede = credentials as ExtendedCredentials; context.Add(WulkaContextKey.UserName, crede.UserName); context.Add(WulkaContextKey.SessionId, crede.Session); context.Add(WulkaContextKey.ServiceCode, crede.ServiceCode); GetClt(inst).Endpoint.Behaviors.Add(new UserNameEndpointBehavior(new ExtendedMessageInspector(crede.UserName, crede.FirstName, crede.LastName, crede.Session, crede.ServiceCode))); break; } } } }