Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Windows Credentials Manager / Apple Keychain - List All SecretsSee more Secrets ExamplesOn Windows, lists all secrets in the Windows Credentials Manager. On MacOS or iOS, lists all secrets in the Apple Keychain. Note: This example requires Chilkat v10.1.0 or later. For more information, see https://cknotes.com/chilkat-secrets-class-added-in-version-10-1-0/
LOCAL loSecrets LOCAL loJson LOCAL loResults LOCAL lnSuccess LOCAL lcAppName LOCAL lcService LOCAL lcDomain LOCAL lcUsername LOCAL lcTargetName LOCAL lcKeyChainService LOCAL lcKeyChainAccount LOCAL i LOCAL lnCount_i * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Secrets') loSecrets = CreateObject('Chilkat.Secrets') * On Windows, this is the Windows Credentials Manager * On MacOS/iOS, it is the Apple Keychain loSecrets.Location = "local_manager" * Pass an empty JSON object to list all secrets. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loResults = CreateObject('Chilkat.JsonObject') loResults.EmitCompact = 0 lnSuccess = loSecrets.ListSecrets(loJson,loResults) IF (lnSuccess = 0) THEN ? loSecrets.LastErrorText RELEASE loSecrets RELEASE loJson RELEASE loResults CANCEL ENDIF ? loResults.Emit() * Sample output on Windows (listing all secrets contained in the Windows Credentials Manager) * The "targetName" is purely informational and indicates the raw TargetName of the secret (i.e. Credential) stored in the Credentials Manager. * Code for parsing (iterating) the JSON results is shown below.. * { * "secrets": [ * { * "appName": "Test", * "service": "MyService", * "domain": "Xyz", * "username": "MySecret", * "targetName": "Test/MyService/Xyz/MySecret" * }, * { * "appName": "Chilkat", * "service": "TestSplit", * "domain": "local", * "username": "Matt", * "targetName": "Chilkat/TestSplit/local/Matt" * }, * { * "appName": "Test2", * "service": "Custom", * "domain": "Ocean", * "username": "Starfish20", * "targetName": "Test2/Custom/Ocean/Starfish20" * }, * { * "service": "VS Code Azure", * "domain": "", * "username": "Azure", * "targetName": "VS Code Azure/Azure" * }, * { * "appName": "Test2", * "service": "Custom", * "domain": "Ocean", * "username": "Starfish", * "targetName": "Test2/Custom/Ocean/Starfish" * }, * { * "appName": "AA_MyApp", * "service": "OAuth2", * "domain": "onedrive", * "username": "matt", * "targetName": "AA_MyApp/OAuth2/onedrive/matt" * } * ] * } * --------------------------------------------------------------------------------------- * Here's sample output for listing secrets on MacOS * Some are secrets created using Chilkat's API, others are pre-existing secrets. * The "keyChainService" and "keyChainAccount" members are purely informational and show the raw Apple Keychain Service and Account information for the secret. * { * "secrets": [ * { * "service": "com.apple.scopedbookmarksagent.xpc", * "username": "com.apple.scopedbookmarksagent.xpc", * "keyChainService": "com.apple.scopedbookmarksagent.xpc", * "keyChainAccount": "com.apple.scopedbookmarksagent.xpc" * }, * { * "service": "StandaloneBeacon", * "username": "searchparty", * "keyChainService": "StandaloneBeacon", * "keyChainAccount": "searchparty" * }, * { * "service": "BeaconStore", * "username": "BeaconStoreKey", * "keyChainService": "BeaconStore", * "keyChainAccount": "BeaconStoreKey" * }, * { * "service": "LocalStorage", * "username": "findmylocate", * "keyChainService": "LocalStorage", * "keyChainAccount": "findmylocate" * }, * { * "service": "ProtectedCloudStorage", * "username": "default", * "keyChainService": "ProtectedCloudStorage", * "keyChainAccount": "default" * }, * { * "service": "CloudStorage", * "username": "findmylocate", * "keyChainService": "CloudStorage", * "keyChainAccount": "findmylocate" * }, * { * "service": "CloudKitCache", * "username": "FindMyCloudKit", * "keyChainService": "CloudKitCache", * "keyChainAccount": "FindMyCloudKit" * }, * { * "service": "com.apple.continuity.encryption", * "username": "handoff-own-encryption-key", * "keyChainService": "com.apple.continuity.encryption", * "keyChainAccount": "handoff-own-encryption-key" * }, * { * "service": "com.apple.NetworkServiceProxy.ProxyToken", * "username": "CloudFlare", * "keyChainService": "com.apple.NetworkServiceProxy.ProxyToken", * "keyChainAccount": "CloudFlare" * }, * { * "appName": "Chilkat", * "service": "çözツ新", * "domain": "local", * "username": "Matt", * "keyChainService": "Chilkat/çözツ新", * "keyChainAccount": "local/Matt" * }, * { * "service": "AirPort", * "username": "FP Public WiFi", * "keyChainService": "AirPort", * "keyChainAccount": "FP Public WiFi" * } * ] * } * --------------------------------------------------------------------------------------- * Here's sample code for parsing the JSON list of secrets. i = 0 lnCount_i = loResults.SizeOfArray("secrets") DO WHILE i < lnCount_i loResults.I = i lcAppName = loResults.StringOf("secrets[i].appName") lcService = loResults.StringOf("secrets[i].service") lcDomain = loResults.StringOf("secrets[i].domain") lcUsername = loResults.StringOf("secrets[i].username") lcTargetName = loResults.StringOf("secrets[i].targetName") lcKeyChainService = loResults.StringOf("secrets[i].keyChainService") lcKeyChainAccount = loResults.StringOf("secrets[i].keyChainAccount") i = i + 1 ENDDO RELEASE loSecrets RELEASE loJson RELEASE loResults |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.