Example #1
0
        private void _credentialManager_ResolveCredentials(object sender, ResolveCredentialsEventArgs e)
        {
            ResolveCredentialsResult res = null;

            lock (_credentials)
            {
                if (_credentials.ContainsKey(e.Principal))
                {
                    res = new ResolveCredentialsResult(_credentials[e.Principal]);
                }
                else
                {
                    foreach (KeyValuePair <SecurityPrincipal, ICredentialObject> pair in _credentials)
                    {
                        //// Check for wildcard principals in both direction
                        //if (pair.Key.IsWildcardMatch(principal) || principal.IsWildcardMatch(pair.Key))
                        //{
                        //    res = new ResolveCredentialsResult(pair.Value);
                        //}
                    }
                }
            }

            if (res == null)
            {
                if (ResolveCredentials != null)
                {
                    ResolveCredentials(this, e);
                }
            }
            else
            {
                e.Result = res;
            }
        }
Example #2
0
        private void ResolveCredentials(object sender, ResolveCredentialsEventArgs e)
        {
            if (InvokeRequired)
            {
                Invoke(new EventHandler <ResolveCredentialsEventArgs>(ResolveCredentials), sender, e);
            }
            else
            {
                if (e.Principal.PrincipalType == typeof(AuthenticationCredentials))
                {
                    if (_document.Credentials.ContainsKey(e.Principal))
                    {
                        e.Result = new ResolveCredentialsResult(_document.Credentials[e.Principal], false);
                    }
                    else
                    {
                        using (GetAuthenticationCredentialsForm frm = new GetAuthenticationCredentialsForm(e.Principal))
                        {
                            if (frm.ShowDialog(this) == DialogResult.OK)
                            {
                                AuthenticationCredentials creds = new AuthenticationCredentials(frm.Username, frm.Domain, frm.Password);

                                e.Result = new ResolveCredentialsResult(creds, frm.SaveCreds && frm.SessionOnly);

                                if (frm.SaveCreds && !frm.SessionOnly)
                                {
                                    _document.Credentials[e.Principal] = creds;
                                    credentialsEditorControl.UpdateCredentials();
                                }
                            }
                        }
                    }
                }
            }
        }