public override void DoExecuteCmdlet() { ConfirmAction( string.Format(Resources.DoFullRestore, StorageContainerUri), HsmName, () => { var errorMsg = string.Format(Resources.FullRestoreFailed, HsmName); try { if (KeyName == null) { Track2DataClient.RestoreHsm(HsmName, StorageContainerUri, SasToken.ConvertToString(), BackupFolder); } else { Track2DataClient.SelectiveRestoreHsm(HsmName, KeyName, StorageContainerUri, SasToken.ConvertToString(), BackupFolder); errorMsg = string.Format(Resources.SelectiveRestoreFailed, KeyName, HsmName); } } catch (Exception ex) { throw new Exception(errorMsg, ex); } if (PassThru) { WriteObject(true); } } ); }
private void SetConnectionString() { StringBuilder sb = new StringBuilder(); sb.Append($"BlobEndpoint={BlobEndpoint};"); sb.Append($"QueueEndpoint={QueueEndpoint};"); sb.Append($"FileEndpoint={FileEndpoint};"); sb.Append($"TableEndpoint={TableEndpoint};"); sb.Append($"SharedAccessSignature={SasToken.TrimStart('?')}"); ConnectionString = sb.ToString(); }
/// <summary> /// Validate the object. /// </summary> /// <exception cref="ValidationException"> /// Thrown if validation fails /// </exception> public override void Validate() { base.Validate(); if (AccountKey != null) { AccountKey.Validate(); } if (SasToken != null) { SasToken.Validate(); } }
public override void DoExecuteCmdlet() { ConfirmAction( string.Format(Resources.DoFullRestore, StorageContainerUri), Name, () => { try { Track2DataClient.RestoreHsm(Name, StorageContainerUri, SasToken.ConvertToString(), BackupFolder); } catch (Exception ex) { throw new Exception(string.Format(Resources.FullRestoreFailed, Name), ex); } if (PassThru) { WriteObject(true); } } ); }
internal static Secret CreateAzureStorageSasTokenSecret(string secretValue) { // In this case, the environment variable is expected to hold an Azure Storage connection string var cloudStorageAccount = CloudStorageAccount.Parse(secretValue); // Create a godlike SAS token for the account, so that we don't need to reimplement the Central Secrets Service. var sasToken = cloudStorageAccount.GetSharedAccessSignature(new SharedAccessAccountPolicy { SharedAccessExpiryTime = null, Permissions = SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Delete | SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.ProcessMessages | SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Update | SharedAccessAccountPermissions.Write, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object | SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Service, Protocols = SharedAccessProtocol.HttpsOnly, IPAddressOrRange = null, }); var internalSasToken = new SasToken( token: sasToken, storageAccount: cloudStorageAccount.Credentials.AccountName, resourcePath: null); return(new UpdatingSasToken(internalSasToken)); }
public SasParameters(string sasToken) { SasToken = sasToken.TrimStart('?'); foreach (string parameter in SasToken.Split('&')) { string paramName = parameter.ToLower().Split('=')[0]; string encodedParamValue = parameter.Split('=')[1]; string paramValue = WebUtility.UrlDecode(encodedParamValue); if (paramName.Equals("api-version")) { ApiVersion = paramValue; } if (paramName.Equals("sv")) { SignedVersion = paramValue; } if (paramName.Equals("ss")) { SignedServices = paramValue; } if (paramName.Equals("srt")) { SignedResourceTypes = paramValue; } if (paramName.Equals("sp")) { SignedPermission = paramValue; } if (paramName.Equals("sip")) { SignedIp = paramValue; } if (paramName.Equals("spr")) { SignedProtocol = paramValue; } if (paramName.Equals("sig")) { Signature = encodedParamValue; } if (paramName.Equals("st")) { SignedStart = paramValue; SignedStartUtc = ParseDate(SignedStart); SignedStartLocal = SignedStartUtc.ToLocalTime(); } if (paramName.Equals("se")) { SignedExpiry = paramValue; SignedExpiryUtc = ParseDate(SignedExpiry); SignedExpiryLocal = SignedExpiryUtc.ToLocalTime(); } // service sas if (paramName.Equals("sr") | paramName.Equals("tn")) { IsServiceSas = true; } } }
public override void DoExecuteCmdlet() { ConfirmAction( string.Format(Resources.DoFullBackup, StorageContainerUri), Name, () => { try { WriteObject(Track2DataClient.BackupHsm(Name, StorageContainerUri, SasToken.ConvertToString()).AbsoluteUri); } catch (Exception ex) { throw new Exception(string.Format(Resources.FullBackupFailed, Name), ex); } }); }
public virtual async Task Send(byte[] content) { var c = new HttpClient(); c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("SharedAccessSignature", SasToken.Split(' ')[1]); try { var endpoint = GetEndpoint(); Console.Write($"Sending byte array to {endpoint}..."); var result = await c.PostAsync(endpoint, new ByteArrayContent(content)); if (result.IsSuccessStatusCode) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Success"); Console.ForegroundColor = ConsoleColor.White; return; } Console.WriteLine(await result.Content.ReadAsStringAsync()); } catch (Exception e) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(e); Console.ForegroundColor = ConsoleColor.White; } }