internal static ISecureStore GetSecureStore() { var context = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default); var ssp = new SecureStoreServiceProxy(); return(ssp.GetSecureStore(context)); }
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); } }
/// <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); } }
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); }
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); } }
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."); } }
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."); } }
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); }