private bool EnsureSecureStoreTargetApplication(bool forceCreate, out ISecureStore store, out string applicationId)
 {
     store         = GetSecureStore(this.Adapter.Site);
     applicationId = GetSecureStoreTargetApplicationID();
     try {
         store.GetApplication(applicationId);
         return(true);
     } catch (SecureStoreServiceTargetApplicationNotFoundException) {
         if (forceCreate)
         {
             using (BypassValidateFormDigest()) {
                 store.CreateApplication(new TargetApplication(
                                             applicationId: applicationId,
                                             friendlyName: String.Concat(this.Key, " (", this.Adapter.Web.Lists[this.Adapter.ListId].RootFolder.Url, ")"),
                                             contactEmail: "",
                                             ticketTimeoutInMinutes: 30,
                                             type: TargetApplicationType.Individual,
                                             credentialManagementUrl: new Uri("http://tempuri.org")),
                                         new[] { new TargetApplicationField("Password", true, SecureStoreCredentialType.Password) },
                                         new TargetApplicationClaims(GetServiceAccounts(), new SecureStoreServiceClaim[0], new SecureStoreServiceClaim[0]));
             }
             return(true);
         }
     }
     return(false);
 }
        private TargetApplication CreateOject(object modelHost, ISecureStore hostSecureStore, TargetApplicationDefinition definition)
        {
            var appType = (TargetApplicationType)Enum.Parse(typeof(TargetApplicationType), definition.Type);

            var secureStoreClaimns = new List <SecureStoreServiceClaim>();

            foreach (var claim in definition.TargetApplicationClams)
            {
                secureStoreClaimns.Add(GetSecureStoreClaim(claim));
            }

            var appClaims = new TargetApplicationClaims(secureStoreClaimns, null, null);
            var appFields = GetFields(definition);

            hostSecureStore.CreateApplication(
                new TargetApplication(definition.ApplicationId, definition.FriendlyName, definition.ContactEmail,
                                      definition.TicketTimeout,
                                      appType,
                                      new Uri(definition.CredentialManagementUrl)),
                appFields, appClaims);

            return(GetCurrentObject(hostSecureStore, definition));
        }
        private TargetApplication CreateOject(object modelHost, ISecureStore hostSecureStore, TargetApplicationDefinition definition)
        {
            var appType = (TargetApplicationType)Enum.Parse(typeof(TargetApplicationType), definition.Type);

            var secureStoreClaimns = new List<SecureStoreServiceClaim>();

            foreach (var claim in definition.TargetApplicationClams)
                secureStoreClaimns.Add(GetSecureStoreClaim(claim));

            var appClaims = new TargetApplicationClaims(secureStoreClaimns, null, null);
            var appFields = GetFields(definition);

            hostSecureStore.CreateApplication(
                new TargetApplication(definition.ApplicationId, definition.FriendlyName, definition.ContactEmail,
                    definition.TicketTimeout,
                    appType,
                    new Uri(definition.CredentialManagementUrl)),
                appFields, appClaims);

            return GetCurrentObject(hostSecureStore, definition);
        }