public void CanGetSalt()
        {
            var securelogon = new SecureLogonService();
            var salt        = securelogon.GetSalt(_sample);

            Console.WriteLine(salt);
            Assert.Less(100, salt.Length);
        }
        public void CanDealWithSecureLogonClient()
        {
            var securelogon  = new SecureLogonService();
            var salt         = securelogon.GetSalt(_sample);
            var secureclient = new SecureLogonClient();
            var cert         = Assembly.GetExecutingAssembly().ReadManifestResourceBytes("private.pfx");
            var logoninfo    = secureclient.GetLogonInfo(salt, cert);

            securelogon.CheckSecureInfo(logoninfo, _sample);
        }
Esempio n. 3
0
        public string GetSalt(string username, IScope context = null)
        {
            if (null == UserService)
            {
                return(null);
            }
            var user = UserService.GetUser(username);

            if (!StateChecker.IsSecureLogable(user))
            {
                return(null);
            }

            return(SecureLogonService.GetSalt(user, context));
        }
        public void CanDealWithLogon()
        {
            var securelogon  = new SecureLogonService();
            var salt         = securelogon.GetSalt(_sample);
            var encryptor    = new Encryptor();
            var cert         = typeof(HashSecureLogonTest).Assembly.ReadManifestResourceBytes("private.pfx");
            var saltbytes    = Convert.FromBase64String(salt);
            var decrypted    = encryptor.Decrypt(saltbytes, cert);
            var decryptedstr = Encoding.UTF8.GetString(decrypted);
            var hash         = encryptor.SignData(decrypted, cert);
            var hashstr      = Convert.ToBase64String(hash);

            securelogon.CheckSecureInfo(new SecureLogonInfo {
                Salt = decryptedstr, Sign = hashstr
            }, _sample);
        }
Esempio n. 5
0
        public IIdentity Logon(string username, SecureLogonInfo info, IScope context = null)
        {
            if (null == UserService)
            {
                return(null);
            }
            var user = UserService.GetUser(username);

            if (!StateChecker.IsSecureLogable(user))
            {
                return(null);
            }
            var result = new Identity {
                Name = username,
                AuthenticationType = "secure"
            };
            var state = StateChecker.GetActivityState(user);

            if (state != UserActivityState.Ok)
            {
                result.IsError = true;
                result.Error   = new SecurityException(state.ToStr());
            }
            else
            {
                try {
                    SecureLogonService.CheckSecureInfo(info, user, context);
                    result.IsAuthenticated = true;
                    result.User            = user;
                    result.IsAdmin         = user.IsAdmin;
                }
                catch (Exception e) {
                    result.IsError = true;
                    result.Error   = e;
                }
            }

            return(result);
        }