private async void button5_Click(object sender, EventArgs e) { List <string> grupy = new List <string> { "jira-users", "jira-restricted-users", "confluence-users", "confluence-restricted-users", "stash-users" }; timer.Start(); using (Authentication a = new Authentication()) { AuthenticatedToken token = a.Authenticate(); try { SecurityServer s = a.securityServer; List <string> Allusers = await s.findAllPrincipalsAsync(token); List <string> tempUsers = new List <string>(); foreach (string g in grupy) { SOAPGroup group = await s.findGroup(token, g); foreach (var m in group.members) { Allusers.Remove(m); this.Text = timer.Elapsed.ToString(@"mm\:ss\:ff"); } } tempUsers.AddRange(Allusers); foreach (var u in tempUsers) { SOAPPrincipal SOAPuser = await s.findPrincipalAsync(token, u); if (!SOAPuser.active) { Allusers.Remove(SOAPuser.name); this.Text = timer.Elapsed.ToString(@"mm\:ss\:ff"); } } Allusers.Sort(); MessageBox.Show(string.Join(" ", Allusers), timer.Elapsed.ToString()); this.Text = "Form1"; timer.Reset(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public IdentityUser GetUserByName(string name) { AuthenticatedToken apiToken = GetAuthenticatedToken(); SOAPPrincipal soapPrincipal = _securityServer.findPrincipalByName(apiToken, name); return(soapPrincipal == null ? null : new IdentityUser { UserName = name }); }
private async void button6_Click(object sender, EventArgs e) { List <string> grupy = new List <string> { "jira-users", "jira-restricted-users" }; timer.Start(); using (Authentication a = new Authentication()) { AuthenticatedToken token = a.Authenticate(); try { SecurityServer s = a.securityServer; List <string> JiraUsers = new List <string>(); List <string> RestrictedUsers = new List <string>(); List <string> CommonUsers = new List <string>(); SOAPGroup Jiragroup = await s.findGroup(token, grupy[0]); SOAPGroup Restrictedgroup = await s.findGroup(token, grupy[1]); JiraUsers.AddRange(Jiragroup.members.ToList()); RestrictedUsers.AddRange(Restrictedgroup.members.ToList()); CommonUsers = JiraUsers.FindAll(x => RestrictedUsers.Contains(x)); List <SOAPPrincipal> CommonPrincipals = new List <SOAPPrincipal>(); foreach (var user in CommonUsers) { SOAPPrincipal SOAPuser = await s.findPrincipalAsync(token, user); if (SOAPuser.active) { CommonPrincipals.Add(SOAPuser); } } MessageBox.Show(string.Join(" ", CommonPrincipals.Select(x => x.name)), timer.Elapsed.ToString()); timer.Reset(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private async void button4_Click(object sender, EventArgs e) { timer.Start(); using (Authentication a = new Authentication()) { AuthenticatedToken token = a.Authenticate(); try { SecurityServer s = a.securityServer; List <string> users = await s.findAllPrincipalsAsync(token); Dictionary <string, int> UsersWithWrongPassword = new Dictionary <string, int>(); foreach (string user in users) { this.Text = timer.Elapsed.ToString(@"mm\:ss\:ff"); SOAPPrincipal SOAPuser = await s.findPrincipalAsync(token, user); if (SOAPuser.active) { try { string zleHasla = SOAPuser.attributes.SingleOrDefault(x => x.name == "invalidPasswordAttempts")?.values[0]; int.TryParse(zleHasla, out int wrPass); if (wrPass > 2) { UsersWithWrongPassword.Add(SOAPuser.attributes.SingleOrDefault(x => x.name == "displayName")?.values[0], wrPass); } } catch (Exception uex) { MessageBox.Show(uex.Message + '\n' + SOAPuser.name); } } } MessageBox.Show(string.Join("\n", UsersWithWrongPassword.OrderBy(x => x.Key)), timer.Elapsed.ToString()); this.Text = "Form1"; timer.Reset(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
private async void button1_Click(object sender, EventArgs e) { var sub = clock.Subscribe(OnNext(timer), TimerCompleted()); await Task.Factory.StartNew(() => { SOAPPrincipal SOAPuser = new SOAPPrincipal(); using (Authentication a = new Authentication()) { if (a.Authenticate(textBox1.Text, textBox2.Text, out SOAPuser)) { string name = SOAPuser.attributes.Single(x => x.name == "displayName").values[0]; timer.Stop(); MessageBox.Show($"Witaj \n{name}"); } } }); }
//private Task<SOAPPrincipal> findPrincipal(SecurityServer s, AuthenticatedToken token, string user) //{ // return Task.Run(() => // { // SOAPPrincipal u = new SOAPPrincipal(); // u = s.findPrincipalWithAttributesByName(token, user); // return u; // }); //} #endregion private async void button3_Click(object sender, EventArgs e) { timer.Start(); using (Authentication a = new Authentication()) { AuthenticatedToken token = a.Authenticate(); try { SecurityServer s = a.securityServer; List <string> users = await s.findAllPrincipalsAsync(token); List <string> notOurUsers = new List <string>(); foreach (string user in users) { SOAPPrincipal SOAPuser = await s.findPrincipalAsync(token, user); if (SOAPuser.active) { bool ourMember = SOAPuser.attributes.Select(x => x.name).Contains("lastAuthenticated"); if (!ourMember) { notOurUsers.Add(user); } } } notOurUsers.Sort(); MessageBox.Show(string.Join(" ", notOurUsers), timer.Elapsed.ToString()); timer.Reset(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public bool Authenticate(string username, string password, out SOAPPrincipal principal) { bool authenticated = false; principal = null; ApplicationAuthenticationContext appContext = new ApplicationAuthenticationContext { name = APPLICATION_NAME }; // Provide the password associated with the application, as set-up in Crowd. PasswordCredential pwdApp = new PasswordCredential { credential = APPLICATION_PWD }; appContext.credential = pwdApp; try { // Authenticate the application (will fire a SOAPException if authentication fails). AuthenticatedToken appToken = _securityServer.authenticateApplication(appContext); if (appToken != null) { // Set-up authentication context for the principal (user) UserAuthenticationContext userContext = new UserAuthenticationContext { application = APPLICATION_NAME, name = username }; // Provide the password for authenticating this principal (user) PasswordCredential pwdPrincipal = new PasswordCredential { credential = password }; userContext.credential = pwdPrincipal; // Authenticate the principal (will fire a SOAPException if authentication fails). string principalToken = _securityServer.authenticatePrincipal(appToken, userContext); if (!string.IsNullOrEmpty(principalToken)) { // Find some more details about this authentication user. principal = _securityServer.findPrincipalByToken(appToken, principalToken); authenticated = true; } } } catch (SoapException soapException) { // Handle Authentication/SOAP Errors here... if (soapException.Detail.FirstChild.Name == "InvalidAuthenticationException") { MessageBox.Show("Błędny login lub hasło", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error); // throw; } else { MessageBox.Show(soapException.Message, soapException.Detail.FirstChild.Name, MessageBoxButtons.OK, MessageBoxIcon.Error); } #region ExceptionInfo // Consult soapException.Detail.FirstChild.Name for further details: // This may be set to one of: // RemoteException // InvalidAuthenticationException // InvalidAuthorizationTokenException // InactiveAccountException // InvalidTokenException #endregion } catch (Exception ex) { // Handle all other errors here... MessageBox.Show(ex.Message); } return(authenticated); }