private void GrantPermissions(CtpNetStream stream, CtpAccount account, string loginName, List <string> grantedRoles, List <string> deniedRoles) { stream.LoginName = loginName; stream.AccountName = account.Name; stream.GrantedRoles.UnionWith(account.ImplicitRoles); stream.GrantedRoles.UnionWith(account.ExplicitRoles.Union(grantedRoles)); stream.GrantedRoles.ExceptWith(deniedRoles); }
private bool TryFindCertificate(string thumbprint, out X509Certificate2 cert, out CtpAccount account) { lock (m_syncRoot) { TryAgain: if (!m_certificateAccounts.TryGetValue(thumbprint, out var tuple)) { if (m_lastCertRefresh.ElapsedSeconds() > 60)//check at most once per minute { RebuildCerts(); goto TryAgain; } cert = null; account = null; return(false); } cert = new X509Certificate2(tuple.Item2); account = m_accounts[tuple.Item1]; return(true); } }