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); }
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); }
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); }