Пример #1
0
        public ReadOnlyCollection <NetworkCredential> GetCredentials(string targetUri)
        {
            var creds = WinCredentialsProxy.LoadCredentials(targetUri);

            List <NetworkCredential> retVal = new List <NetworkCredential>();

            if (creds.Count > 0)
            {
                foreach (var cred in creds)
                {
                    switch (cred.Type)
                    {
                    case CredentialType.DomainPassword:
                    case CredentialType.DomainVisiblePassword:
                        DomainUser dUser = new DomainUser(creds[0].UserName);
                        retVal.Add(new System.Net.NetworkCredential(
                                       dUser.UserName, WinCredentialsProxy.GetPlaintextPassword(creds[0]), dUser.Domain));
                        break;

                    default:
                        retVal.Add(new System.Net.NetworkCredential(
                                       creds[0].UserName, WinCredentialsProxy.GetPlaintextPassword(creds[0])));
                        break;
                    }
                }
            }

            return(retVal.AsReadOnly());
        }
Пример #2
0
        public void Save()
        {
            m_migrationSource.ServerUrl        = SelectedDatabase.DatabaseSetName;
            m_migrationSource.SourceIdentifier = SelectedDatabase.DatabaseName;
            m_migrationSource.FriendlyName     = string.Format("{0}@{1}", m_migrationSource.ServerUrl, m_migrationSource.SourceIdentifier);
            m_migrationSource.ServerIdentifier = m_migrationSource.FriendlyName;

            m_migrationSource.CustomSettings.CustomSetting.Clear();
            SaveCustomSetting(ClearQuestConstants.UserNameKey, UserName);

            if (CQLoginCredentialManagerFactory.OSIsNotSupported()) // windows XP does not support stored credentials
            {
                SaveCustomSetting(ClearQuestConstants.PasswordKey, m_password);
                SaveCustomSetting(ClearQuestConstants.LoginCredentialSettingKey, ClearQuestConstants.LoginCredentialSettingUseTextUsernamePasswordPairInConfig);
                m_migrationSource.StoredCredential.CredentialString = null;
            }
            else
            {
                string credentialString = m_migrationSource.FriendlyName;
                if (WinCredentialsProxy.CredentialExists(credentialString, WinCredentials.CredentialType.Generic))
                {
                    WinCredentialsProxy.DeleteCredential(credentialString);
                }
                WinCredentialsProxy.AddGeneralCredential(credentialString, UserName, m_password, WinCredentials.CredentialPersistence.Session, string.Empty);
                m_migrationSource.StoredCredential.CredentialString = credentialString;
            }
        }
Пример #3
0
        public void Save()
        {
            m_migrationSource.ServerUrl        = SelectedDatabase.DatabaseSetName;
            m_migrationSource.SourceIdentifier = SelectedDatabase.DatabaseName;
            m_migrationSource.FriendlyName     = string.Format("{0}@{1}", m_migrationSource.ServerUrl, m_migrationSource.SourceIdentifier);
            m_migrationSource.ServerIdentifier = m_migrationSource.FriendlyName;

            m_migrationSource.CustomSettings.CustomSetting.Clear();
            SaveCustomSetting(ClearQuestConstants.UserNameKey, UserName);

            if (CQLoginCredentialManagerFactory.OSIsNotSupported()) // windows XP does not support stored credentials
            {
                SaveCustomSetting(ClearQuestConstants.PasswordKey, m_password);
                SaveCustomSetting(ClearQuestConstants.LoginCredentialSettingKey, ClearQuestConstants.LoginCredentialSettingUseTextUsernamePasswordPairInConfig);
                m_migrationSource.StoredCredential.CredentialString = null;
                TraceManager.TraceInformation("ClearQuestConnectDialog: Skipped adding credentials to the credential store because the operating system does not support it");
            }
            else
            {
                // todo: move this to the adapter as a helper method
                string credentialString = ClearQuestConstants.CqConnectionStringUrlPrefix + m_migrationSource.FriendlyName;
                if (WinCredentialsProxy.CredentialExists(credentialString, WinCredentials.CredentialType.Generic))
                {
                    WinCredentialsProxy.DeleteCredential(credentialString);
                }
                WinCredentialsProxy.AddGeneralCredential(credentialString, UserName, m_password, WinCredentials.CredentialPersistence.LocalComputer, string.Empty);
                m_migrationSource.StoredCredential.CredentialString = credentialString;
                TraceManager.TraceInformation("ClearQuestConnectDialog: Successfully added credentials to the credential store with the key '{0}'", credentialString);
            }
        }
Пример #4
0
        public void AddCredential(Uri uriPrefix, CredentialType credType, NetworkCredential cred)
        {
            if (null == uriPrefix)
            {
                throw new ArgumentNullException("uriPrefix");
            }

            if (null == cred)
            {
                throw new ArgumentNullException("cred");
            }

            // todo: we are not saving any description/comments for the creds we save in the
            // credential store. we may want to add a comment
            WinCredentialsProxy.AddCredential(
                CreateWinCredentialsTargetName(uriPrefix), credType, cred.UserName, cred.Password,
                CredentialPersistence.Session, string.Empty);
        }
Пример #5
0
        public NetworkCredential GetCredential(Uri uriPrefix, CredentialType credType)
        {
            var creds = WinCredentialsProxy.LoadCredentials(CreateWinCredentialsTargetName(uriPrefix));

            NetworkCredential retVal = null;

            if (creds.Count > 0)
            {
                foreach (var cred in creds)
                {
                    if (cred.Type == credType)
                    {
                        retVal = new System.Net.NetworkCredential(
                            creds[0].UserName, WinCredentialsProxy.GetPlaintextPassword(creds[0]));
                        break;
                    }
                }
            }

            return(retVal);
        }
Пример #6
0
 public void DeleteCredential(Uri uriPrefix, CredentialType credType)
 {
     WinCredentialsProxy.DeleteCredential(CreateWinCredentialsTargetName(uriPrefix), credType);
 }
Пример #7
0
 public void DeleteCredential(Uri uriPrefix)
 {
     WinCredentialsProxy.DeleteCredential(CreateWinCredentialsTargetName(uriPrefix));
 }
Пример #8
0
 public bool IsCredentialStored(Uri uriPrefix, CredentialType credType)
 {
     return(WinCredentialsProxy.CredentialExists(
                CreateWinCredentialsTargetName(uriPrefix), credType));
 }