예제 #1
0
        public async Task <IActionResult> Edit(Guid id)
        {
            var user = await adminService.GetUserByObjectIdAsync(id);

            List <CertificateModel> certs = null;

            if (user.KeyVaultUrl != null)
            {
                certs = await keyVaultAdminService.GetCertificatesInVaultAsync(user.KeyVaultUrl);
            }
            if (certs == null)
            {
                certs = new List <CertificateModel>();
            }

            var model = new UpdateCreateSignServiceUserModel
            {
                ObjectId        = user.ObjectId.Value,
                Username        = user.UserPrincipalName,
                Configured      = user.SignServiceConfigured ?? false,
                CertificateName = user.KeyVaultCertificateName,
                DisplayName     = user.DisplayName,
                KeyVaultUrl     = user.KeyVaultUrl,
                TimestampUrl    = user.TimestampUrl,

                // Only show enabled ones here
                CertificatesModels = certs.Where(cm => cm.Attributes?.Enabled == true).ToList()
            };

            return(View(model));
        }
예제 #2
0
        // GET: KeyVault/Details/5
        public async Task <IActionResult> Details(string id)
        {
            try
            {
                var vault = await keyVaultAdminService.GetVaultAsync(id);

                var certificates = await keyVaultAdminService.GetCertificatesInVaultAsync(vault.VaultUri);

                // See if there are any pending ops
                var ops = certificates.Select(c => new { cert = c, operation = keyVaultAdminService.GetCertificateOperation(vault.VaultUri, c.Name) }).ToList();
                await Task.WhenAll(ops.Select(a => a.operation));

                foreach (var op in ops)
                {
                    op.cert.Operation = op.operation.Result; // completed, safe
                }

                var model = new KeyVaultDetailsModel
                {
                    Vault             = vault,
                    CertificateModels = ops.Select(a => a.cert).ToList()
                };

                return(View(model));
            }
            catch (Exception)
            {
                ViewBag.Id = id;
                return(View("Details.Error"));
            }
        }