protected override void ProcessRequest(IMessage message, ITransportHeaders headers, ref Stream stream, ref object state)
        {
            if (headers["CustomEncryption"] != null && headers["Credentials"] != null)
            {

                var args = new EncryptCredentials(headers["Credentials"].ToString());
                User user = new User();
                user.Username = string.Format("{0}", args["Username"]);
                user.Password = string.Format("{0}", args["Password"]);
                user.AddressTable.Add(user.Username, string.Format("{0}", args["Uri"]));
                UserDataManager userManager = new UserDataManager();
                if (user != null && userManager.UserLogOn(user.Username, user.Password) != null)
                {
                    // okay
                    Console.WriteLine(
                        "AuthServerSink: retrieved valid credential information: username: {0}, password {1}.",
                        user.Username, user.Password);
                    LoginInfo.Authenticated = true;
                    LoginInfo.LoginName = user.Username;
                    LoginInfo.LoginPassword = user.Password;

                    Console.WriteLine("EncryptServerSink: decrypting request");
                    stream = this.Decrypt(stream);
                    state = true;

                    return;
                }
            }
            // not good!
            Console.WriteLine(
                "DemoCredentialsServerSink: retrieved bad credentials or credentials are missing. Throwing an exception.");
            throw new RemotingException("Invalid credentials.");
        }
 public DataSet GetDepartment()
 {
     if (LoginInfo.Authenticated)
     {
         UserDataManager userManager = new UserDataManager();
         return userManager.GetDepartmentsDataSet();
     }
     return null;
 }