예제 #1
0
 /// <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]));
     }
 }
예제 #2
0
        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);
 }
예제 #4
0
 /// <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
         });
     }
 }
예제 #5
0
 /// <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());
     }
 }
예제 #6
0
        /// <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;
                }
                }
            }
        }