コード例 #1
0
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(KeyName, Properties.Resources.AddIotHubKey))
            {
                if (ParameterSetName.Equals(ResourceIdParameterSet))
                {
                    this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.HubId);
                    this.Name = IotHubUtils.GetIotHubName(this.HubId);
                }

                var psAuthRule = new PSSharedAccessSignatureAuthorizationRule()
                {
                    KeyName      = this.KeyName,
                    PrimaryKey   = this.PrimaryKey,
                    SecondaryKey = this.SecondaryKey,
                    Rights       = this.Rights
                };

                var authRule = IotHubUtils.ToSharedAccessSignatureAuthorizationRule(psAuthRule);

                IotHubDescription iothubDesc = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);
                IList <SharedAccessSignatureAuthorizationRule> authRules = (List <SharedAccessSignatureAuthorizationRule>) this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name).ToList();
                authRules.Add(authRule);
                iothubDesc.Properties.AuthorizationPolicies = authRules;

                this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iothubDesc);
                IEnumerable <SharedAccessSignatureAuthorizationRule> updatedAuthRules = this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name);
                this.WriteObject(IotHubUtils.ToPSSharedAccessSignatureAuthorizationRules(updatedAuthRules), true);
            }
        }
コード例 #2
0
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(KeyName, Properties.Resources.NewIotHubKey))
            {
                if (ParameterSetName.Equals(ResourceIdParameterSet))
                {
                    this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.HubId);
                    this.Name = IotHubUtils.GetIotHubName(this.HubId);
                }

                var regeneratedAuthRule = new PSSharedAccessSignatureAuthorizationRule();

                IotHubDescription iothubDesc = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);
                IList <SharedAccessSignatureAuthorizationRule> authRules = (List <SharedAccessSignatureAuthorizationRule>) this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name).ToList();

                foreach (var authRule in authRules)
                {
                    if (authRule.KeyName.Equals(this.KeyName, StringComparison.OrdinalIgnoreCase))
                    {
                        regeneratedAuthRule = IotHubUtils.ToPSSharedAccessSignatureAuthorizationRule(authRule);
                        authRules.Remove(authRule);
                        break;
                    }
                }

                switch (RenewKey.ToLower(CultureInfo.InvariantCulture))
                {
                case "primary":
                    regeneratedAuthRule.PrimaryKey = this.RegenerateKey();
                    break;

                case "secondary":
                    regeneratedAuthRule.SecondaryKey = this.RegenerateKey();
                    break;

                case "swap":
                    var temp = regeneratedAuthRule.PrimaryKey;
                    regeneratedAuthRule.PrimaryKey   = regeneratedAuthRule.SecondaryKey;
                    regeneratedAuthRule.SecondaryKey = temp;
                    break;
                }

                authRules.Add(IotHubUtils.ToSharedAccessSignatureAuthorizationRule(regeneratedAuthRule));
                iothubDesc.Properties.AuthorizationPolicies = authRules;

                this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iothubDesc);
                IEnumerable <SharedAccessSignatureAuthorizationRule> updatedAuthRules = this.IotHubClient.IotHubResource.ListKeys(this.ResourceGroupName, this.Name);

                SharedAccessSignatureAuthorizationRule authPolicy = this.IotHubClient.IotHubResource.GetKeysForKeyName(this.ResourceGroupName, this.Name, this.KeyName);
                this.WriteObject(IotHubUtils.ToPSSharedAccessSignatureAuthorizationRule(authPolicy), false);
            }
        }