コード例 #1
0
        internal static ISecureStore GetSecureStore()
        {
            var context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
            var ssp     = new SecureStoreServiceProxy();

            return(ssp.GetSecureStore(context));
        }
コード例 #2
0
        public static void DeleteExtentrixWindowsCredentials(Page page, LogLocationEnum LogLocation, SPUser user)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(SPContext.Current.Site.ID))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            SPServiceContext context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

                            SecureStoreServiceProxy ssp = new SecureStoreServiceProxy();
                            ISecureStore iss            = ssp.GetSecureStore(context);

                            SPContext.Current.Web.AllowUnsafeUpdates = true;
                            //SPUtility.ValidateFormDigest();

                            iss.DeleteUserCredentials(Constants.TargetAppID, GetSSClaim(user));
                            SPContext.Current.Web.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
            catch (SecureStoreServiceCredentialsNotFoundException ex)
            {
                Logger.Default.Error(LogLocation, ex.Message, ex);
            }
            catch (Exception ex)
            {
                Logger.Default.Info(LogLocation, "SecureStore: Exception delete Windows Credentials");
                Logger.Default.Error(LogLocation, ex.Message, ex);
            }
        }
コード例 #3
0
        /// <summary>
        /// If not using windows authentication, might want to try running under elevated permissions and giving the farm account write access to the SSS.
        /// </summary>
        /// <param name="providerTypeName"></param>
        /// <param name="applicationId"></param>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        public static void WriteCredentialsToSecureStore(string providerTypeName, string applicationId, string userName, string password)
        {
            SPServiceContext context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

            SecureStoreServiceProxy ssp = new SecureStoreServiceProxy();
            ISecureStore            iss = ssp.GetSecureStore(context);

            IList <TargetApplicationField> applicationFields = iss.GetUserApplicationFields(applicationId);

            IList <ISecureStoreCredential> creds =
                new List <ISecureStoreCredential>(applicationFields.Count);

            foreach (TargetApplicationField taf in applicationFields)
            {
                switch (taf.CredentialType)
                {
                case SecureStoreCredentialType.UserName:
                case SecureStoreCredentialType.WindowsUserName:
                    creds.Add(new SecureStoreCredential(MakeSecureString(userName), taf.CredentialType));
                    break;

                case SecureStoreCredentialType.Password:
                case SecureStoreCredentialType.WindowsPassword:
                    creds.Add(new SecureStoreCredential(MakeSecureString(password), taf.CredentialType));
                    break;
                }
            }

            using (SecureStoreCredentialCollection credentials = new SecureStoreCredentialCollection(creds))
            {
                iss.SetCredentials(applicationId, credentials);
            }
        }
コード例 #4
0
        public static Credentials GetExtentrixWindowsCredentials(Page page, LogLocationEnum LogLocation, SPUser user)
        {
            WindowsCredentials extentrixCredentials = null;

            SecureStoreCredentialCollection ssCreds = null;
            SPServiceContext context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

            SecureStoreServiceProxy ssp = new SecureStoreServiceProxy();
            ISecureStore            iss = ssp.GetSecureStore(context);

            try
            {
                ssCreds = iss.GetCredentials(Constants.TargetAppID);

                if (ssCreds != null && ssCreds.Count() > 0)
                {
                    extentrixCredentials = new WindowsCredentials();
                    IList <TargetApplicationField> applicationFields = GetTargetApplicationFields(Constants.TargetAppID);

                    foreach (TargetApplicationField taf in applicationFields)
                    {
                        switch (taf.Name)
                        {
                        case "Windows User Name":
                            extentrixCredentials.UserName =
                                ReadSecureString(ssCreds[applicationFields.IndexOf(taf)].Credential);
                            break;

                        case "Windows Password":
                            extentrixCredentials.Password =
                                ReadSecureString(ssCreds[applicationFields.IndexOf(taf)].Credential);
                            break;

                        case "Domain":
                            extentrixCredentials.Domain =
                                ReadSecureString(ssCreds[applicationFields.IndexOf(taf)].Credential);
                            break;
                        }
                    }
                }
            }
            catch (SecureStoreServiceCredentialsNotFoundException ex)
            {
                Logger.Default.Error(LogLocation, ex.Message, ex);
            }
            catch (Exception ex)
            {
                Logger.Default.Info(LogLocation, "SecureStore: Exception getting Windows Credentials");
                Logger.Default.Error(LogLocation, ex.Message, ex);
            }

            return(extentrixCredentials);
        }
コード例 #5
0
        public static void SetExtentrixWindowsCredentials(LogLocationEnum LogLocation, SPUser user, WindowsCredentials extentrixCredentials)
        {
            try
            {
                IList <TargetApplicationField> applicationFields = GetTargetApplicationFields(Constants.TargetAppID);
                IList <ISecureStoreCredential> creds             = new List <ISecureStoreCredential>(applicationFields.Count);

                using (SecureStoreCredentialCollection credentials = new SecureStoreCredentialCollection(creds))
                {
                    foreach (TargetApplicationField taf in applicationFields)
                    {
                        switch (taf.Name)
                        {
                        case "Windows User Name":
                            creds.Add(new SecureStoreCredential(MakeSecureString(extentrixCredentials.UserName),
                                                                SecureStoreCredentialType.WindowsUserName));
                            break;

                        case "Windows Password":
                            creds.Add(new SecureStoreCredential(MakeSecureString(extentrixCredentials.Password),
                                                                SecureStoreCredentialType.WindowsPassword));
                            break;

                        case "Domain":
                            creds.Add(new SecureStoreCredential(MakeSecureString(extentrixCredentials.Domain)
                                                                , SecureStoreCredentialType.Generic));
                            break;
                        }
                    }

                    SPSecurity.RunWithElevatedPrivileges(delegate()
                    {
                        using (SPSite site = new SPSite(SPContext.Current.Site.ID))
                        {
                            using (SPWeb web = site.OpenWeb())
                            {
                                SPServiceContext context    = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
                                SecureStoreServiceProxy ssp = new SecureStoreServiceProxy();
                                ISecureStore iss            = ssp.GetSecureStore(context);

                                iss.SetUserCredentials(Constants.TargetAppID, GetSSClaim(user), credentials);
                            }
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                Logger.Default.Info(LogLocation, "SecureStore: Exception setting windows credentials");
                Logger.Default.Error(LogLocation, ex.Message, ex);
            }
        }
コード例 #6
0
 protected ISecureStore GetCurrentSecureStoreApplication(SPFarm spFarm, SecureStoreApplicationDefinition definition)
 {
     if (definition.UseDefault)
     {
         var context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
         var ssp     = new SecureStoreServiceProxy();
         return(ssp.GetSecureStore(context));
     }
     else
     {
         throw new SPMeta2NotImplementedException("Secure Store resolution by Name/Id is not supported yet. Please use 'UseDefault' property set 'true' instead.");
     }
 }
コード例 #7
0
 protected ISecureStore GetCurrentSecureStoreApplication(SPFarm spFarm, SecureStoreApplicationDefinition definition)
 {
     if (definition.UseDefault)
     {
         var context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
         var ssp = new SecureStoreServiceProxy();
         return ssp.GetSecureStore(context);
     }
     else
     {
         throw new SPMeta2NotImplementedException("Secure Store resolution by Name/Id is not supported yet. Please use 'UseDefault' property set 'true' instead.");
     }
 }
コード例 #8
0
        public static IList <TargetApplicationField> GetTargetApplicationFields(string targetApplicationID)
        {
            IList <TargetApplicationField> applicationFields = null;

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                using (SPSite site = new SPSite(SPContext.Current.Site.ID))
                {
                    using (SPWeb web = site.OpenWeb())
                    {
                        SPServiceContext context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

                        SecureStoreServiceProxy ssp = new SecureStoreServiceProxy();
                        ISecureStore iss            = ssp.GetSecureStore(context);
                        applicationFields           = iss.GetUserApplicationFields(targetApplicationID);
                    }
                }
            });

            return(applicationFields);
        }