コード例 #1
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);
            }
        }
コード例 #2
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);
        }