public async Task <ActionResult> Secret(SecretViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var adminStore = new IdentityServer3AdminStore(); var myCrypto = new TripleDesEncryption(model.PassCode); var protectedClientSecret = myCrypto.Encrypt(model.OpenClientSecret); Secret secret = null; if (string.Compare(model.SecretType, "SharedSecret", StringComparison.OrdinalIgnoreCase) == 0) { var hashedClientSecret = model.OpenClientSecret.Sha256(); secret = new Secret(hashedClientSecret) { Type = model.SecretType }; ProtectedSecretHandle protectedSecretHandle = new ProtectedSecretHandle() { ClientId = model.ClientId, Value = hashedClientSecret, ProtectedValue = protectedClientSecret }; await adminStore.AddSecretProtectedValue(protectedSecretHandle); } if (string.Compare(model.SecretType, "X509Thumbprint", StringComparison.OrdinalIgnoreCase) == 0) { secret = new Secret(model.ThumbPrint) { Type = model.SecretType }; } var secrets = new List <Secret> { secret }; await adminStore.AddClientSecretsToClientAsync(model.ClientId, secrets); return(RedirectToAction("Index")); }