/// <summary> /// Gets one item from the Azure Storage account /// </summary> /// <param name="blobName">Name of the blob on Azure</param> /// <param name="containerName">Name of the blob container in Azure. If nested in directories use: /container-name/dir1/dir2</param> /// <returns></returns> public async Task <MemoryStream> GetAsync(string blobName, string containerName) { // Set policies var policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Service, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(5), Protocols = SharedAccessProtocol.HttpsOnly }; // Set correct policies _cloudStorageAccount.GetSharedAccessSignature(policy); // Create blobClient var blobClient = _cloudStorageAccount.CreateCloudBlobClient(); // Get reference from the container var container = blobClient.GetContainerReference(containerName); // Name of blob var blockBlob = container.GetBlockBlobReference(blobName); // Download the blob var memoryStream = new MemoryStream(); await blockBlob.DownloadToStreamAsync(memoryStream); return(memoryStream); }
/// <summary> /// Creates an Account SAS Token /// </summary> /// <returns>A SAS token.</returns> private static string GetAccountSASToken() { // Retrieve storage account information from connection string CloudStorageAccount storageAccount = Cfg.GetAccount(); // Create a new access policy for the account with the following properties: // Permissions: Read, Write, List, Create, Delete // ResourceType: Container // Expires in 24 hours // Protocols: HTTPS or HTTP (note that the storage emulator does not support HTTPS) SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { // When the start time for the SAS is omitted, the start time is assumed to be the time when the storage service receives the request. // Omitting the start time for a SAS that is effective immediately helps to avoid clock skew. Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Delete, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOrHttp }; // Create new storage credentials using the SAS token. string sasToken = storageAccount.GetSharedAccessSignature(policy); // Return the SASToken return(sasToken); }
public static String GetQueueSasToken(String connectionString) { CloudStorageAccount account = CloudStorageAccount.Parse(connectionString); SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.Delete | SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.ProcessMessages | SharedAccessAccountPermissions.Update | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Queue, ResourceTypes = SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddYears(1), Protocols = SharedAccessProtocol.HttpsOnly }; return(account.GetSharedAccessSignature(policy)); }
// Storage account SAS Token creation samples public static string GetAccountSASToken() { const string ConnectionString = "DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionString); // Sample in which error is generated due to usage of insecure [HttpsOrHttp] protocol configuration SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Service, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOnly }; // Sample in which warning is generated to be aware of expiry time [SharedAccessExpiryTime] policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Service, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOnly, }; return(storageAccount.GetSharedAccessSignature(policy)); }
protected void Page_Load(object sender, EventArgs e) { string clientIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; clientIP = clientIP.Substring(0, clientIP.IndexOf(':')); IPAddressOrRange clientIPRange = new IPAddressOrRange(clientIP); ConnectionStringSettings storageConnectionStr = WebConfigurationManager.ConnectionStrings["StorageAccount"]; string ConnectionString = storageConnectionStr.ConnectionString; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionString); //Create container webcam if it does not exist. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); CloudBlobContainer blobContainer = blobClient.GetContainerReference("webcam"); blobContainer.CreateIfNotExists(); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Delete, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Object | SharedAccessAccountResourceTypes.Container, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1), Protocols = SharedAccessProtocol.HttpsOnly, IPAddressOrRange = clientIPRange, }; // Return the SAS token and container Uri. Javascript will use these value to upload image. string sasToken = storageAccount.GetSharedAccessSignature(policy); blobAccountTextbox.Text = blobClient.StorageUri.PrimaryUri.ToString(); sasTokenTextBox.Text = sasToken; }
static void GetSharedAccessSignatureAccessToken() { Console.WriteLine($"Starting Get Shared Access Token Snippet"); // This only makes sense if the containers access level is set to private!! // Microsoft reccomends you set the start times on these to 15 minutes before your current time to allow for 'clock skew' // There will be no references to these generated SAS Tokens in the portal, it cannot be looked up again or revoked // Always use HTTPS to create or distribute a SAS. If a SAS is passed over HTTP and intercepted, an attacker performing a // man -in-the-middle attack is able to read the SAS and then use it just as the intended user could have, // potentially compromising sensitive data or allowing for data corruption by the malicious user. // Use near-term expiration times on an ad hoc SAS. In this way, even if a SAS is compromised, it's valid only for a short time. // This practice is especially important if you cannot reference a stored access policy. Near-term expiration times also // limit the amount of data that can be written to a blob by limiting the time available to upload to it. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.Now.AddMinutes(10), Protocols = SharedAccessProtocol.HttpsOnly }; var token = storageAccount.GetSharedAccessSignature(policy); Console.WriteLine($"SAS Token retreived: {token}"); Console.WriteLine($"Finished Get Shared Access Token Snippet\r\n"); }
private string GetSasTokenForImportExport() { // Recommended to address possible clock skew, see // https://docs.microsoft.com/azure/storage/common/storage-dotnet-shared-access-signature-part-1#best-practices-when-using-sas const int CLOCK_SKEW_MINUTES = 15; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(this.config.IoTHubImportStorageAccount); // Note: // 1. don't set start time, so the token is valid immediately and not affected by clock skew // 2. for clients using a REST version prior to 2012-02-12, the maximum duration for a SAS that does // NOT reference a stored access policy is 1 hour var policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.Delete | SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Update, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(JOB_SAS_TOKEN_DURATION_HOURS * 60 + CLOCK_SKEW_MINUTES), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
public static IActionResult Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "GetAccessToken/{username}")] HttpRequest req, string username, ILogger log) { string clientIp = GetIpFromRequestHeaders(req); log.LogInformation($"Access Token Request for {username} from {clientIp}"); // Don't issue tokens unless we've got a username if (string.IsNullOrEmpty(username)) { return(new BadRequestObjectResult(string.Empty)); } string accountKey = Environment.GetEnvironmentVariable("AccountKey"); string accountName = Environment.GetEnvironmentVariable("AccountName"); // To create the account SAS, you need to use your shared key credentials. Modify for your account. string connectionString = $"DefaultEndpointsProtocol=https;AccountName={accountName};AccountKey={accountKey}"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1), Protocols = SharedAccessProtocol.HttpsOnly }; return((ActionResult) new OkObjectResult(storageAccount.GetSharedAccessSignature(policy))); }
/// <summary> /// Creates an Account SAS Token /// </summary> /// <param name="storageAccount">The storage account object</param> /// <returns>sasToken</returns> private static string GetAccountSASToken() { // Retrieve storage account information from connection string // How to create a storage connection string - http://msdn.microsoft.com/en-us/library/azure/ee758697.aspx CloudStorageAccount storageAccount = CreateStorageAccountFromConnectionString(CloudConfigurationManager.GetSetting("StorageConnectionString")); // Create a new access policy for the account with the following properties: // Permissions: Read, Write, List, Create, Delete // ResourceType: Container // Expires in 24 hours // Protocols: Https or Http (As Emulator does not yet support Https) SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Delete, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOrHttp }; // Create new storage credentials using the SAS token. string sasToken = storageAccount.GetSharedAccessSignature(policy); // Return the SASToken return(sasToken); }
public string GetStorageSasToken() { CloudStorageAccount storageAccount = InitializeStorageAccount(); SharedAccessAccountPolicy policy = GetPolicy(); string sasToken = storageAccount.GetSharedAccessSignature(policy); return(sasToken); }
public string GenerateSASToken() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(configuration.GetConnectionString("AzureBlobStorage")); var policy = new SharedAccessAccountPolicy { SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddMinutes(5), Permissions = SharedAccessAccountPermissions.Read }; return(storageAccount.GetSharedAccessSignature(policy)); }
private string GetSASToken() { SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.Now.AddMinutes(1) }; return(_storageAccount.GetSharedAccessSignature(policy)); }
static string GetSASToken(CloudStorageAccount storageAccount) { SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.Now.AddMinutes(30), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
public void SASTest() { string sasToken = storage.GetSharedAccessSignature(AccessPolicy()); StorageCredentials credentials = new StorageCredentials(sasToken); var cloudStorageAccountWithSAS = new CloudStorageAccount(credentials, accountName: storage.Credentials.AccountName, endpointSuffix: null, useHttps: true); var table = cloudStorageAccountWithSAS.CreateCloudTableClient().GetTableReference("abfdsfdsfds"); table.CreateIfNotExists(); }
public static string GetBlobUriWithSasToken(string blobUri) { string sharedAccessSignature = storageAccount.GetSharedAccessSignature( new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1), SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-10) }); blobUri += sharedAccessSignature; return(blobUri); }
public static string GetSASToken(CloudStorageAccount sa) { SharedAccessAccountPolicy saap = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.Now.AddMinutes(30), Protocols = SharedAccessProtocol.HttpsOrHttp }; return(sa.GetSharedAccessSignature(saap)); }
static string GetSasToken() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(STORAGE_ACCOUNT_CONN_STRING); var policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.Delete, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(60), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
public void GenerateSas(CloudStorageAccount storage) { var constraints = new SharedAccessAccountPolicy { Protocols = SharedAccessProtocol.HttpsOrHttp, Services = SharedAccessAccountServices.File, SharedAccessStartTime = DateTimeOffset.UtcNow.AddMinutes(-5), SharedAccessExpiryTime = DateTimeOffset.UtcNow.AddHours(1), Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.List, ResourceTypes = SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object }; Sas = storage.GetSharedAccessSignature(constraints); }
string GetSas(SharedAccessAccountPermissions permissions) { var policy = new SharedAccessAccountPolicy { Permissions = permissions, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTimeOffset.Now.AddDays(1), Protocols = SharedAccessProtocol.HttpsOrHttp, }; var sasToken = _storageAccount.GetSharedAccessSignature(policy); return(_container.Uri + sasToken); }
public string GetAccountSASToken() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_connectionString); SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read, Services = SharedAccessAccountServices.Table, ResourceTypes = SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessStartTime = DateTime.UtcNow.AddMinutes(-5), SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
//ALL PRIVATE CONTAINER public static string GenerateAccountSASToken() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(sasTokenExpireTime), //Token ExpireTime is sasTokenExpireTime hour Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
private static string GetAccountSASToken() { const string connectionString = ""; CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString); SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Service | SharedAccessAccountResourceTypes.Container, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOnly }; return(cloudStorageAccount.GetSharedAccessSignature(policy)); }
public override Task <StorageTokenSettingsResult> ExecuteAsync(object request) { var retResult = new StorageTokenSettingsResult(); string connectionString = _config["BlobStorage:ConnectionString"]; string expiryTimeSpanString = _config["BlobStorage:TokenExpiryTimeSpanInMinutes"]; double expiryMinutes = double.Parse(expiryTimeSpanString); var expires = DateTimeOffset.UtcNow.AddMinutes(expiryMinutes); try { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString); //throws format exception if not in correct format SharedAccessAccountPolicy accessPolicy = new SharedAccessAccountPolicy() { //Permissions = SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write, Permissions = SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Protocols = SharedAccessProtocol.HttpsOnly, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, //SharedAccessStartTime = DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(15)), //NOTE: Leaving value blank will make it valid immediately - safter for time zone reasons SharedAccessExpiryTime = expires, }; string token = storageAccount.GetSharedAccessSignature(accessPolicy); //NOTE: local storage endpoint will point to: https://<account-name>.blob.core.windows.net/ - this needs to be replaced by http://127.0.0.1:10000/<account-name>/<resource-path> var settings = new CloudStorageSettings() { SharedAccessSignature = token, SharedAccessSignatureExpires = expires, DocumentStorageContainerName = "document-container-test", ImageStorageContainerName = "image-container-test", AccountName = storageAccount.Credentials.AccountName, ConnectionString = $"SharedAccessSignature={token.TrimStart('?')};BlobEndpoint={storageAccount.BlobEndpoint.AbsoluteUri}", BlobStorageEndpoint = storageAccount.BlobEndpoint.AbsoluteUri }; retResult.StorageSettings = settings; } catch (FormatException) { retResult.Notification.Add("Connection String was not in the correct format"); } return(Task.FromResult(retResult)); }
/// <summary> /// Blob storage for android and IOS assets bundle /// </summary> /// <returns></returns> public async Task <string> GetAccountSASToken() { string ConnectionString = _configuration.GetConnectionString("BlobStorage"); CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionString); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Object,//.Container,//.Service, // object is a file to upload SharedAccessExpiryTime = DateTime.UtcNow.AddYears(20), Protocols = SharedAccessProtocol.HttpsOnly }; return(await Task.FromResult <string>(storageAccount.GetSharedAccessSignature(policy))); }
private static void CmdSafe(string[] args) { if (args.Length < 1) { Console.WriteLine("Usage: safe <stream>"); Console.WriteLine("Prints a read-only connection token to the stream."); return; } try { var arg = Parse(args[0]); var account = new Regex("AccountName=([^;]*)").Match(arg).Groups[1].Value; var key = new Regex("AccountKey=([^;]*)").Match(arg).Groups[1].Value; var c = new StorageCredentials(account, key); var ca = new CloudStorageAccount(c, true); var sas = ca.GetSharedAccessSignature(new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.Read, Protocols = SharedAccessProtocol.HttpsOnly, SharedAccessExpiryTime = DateTimeOffset.UtcNow + TimeSpan.FromDays(365), Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object | SharedAccessAccountResourceTypes.Service, SharedAccessStartTime = DateTimeOffset.UtcNow }); var signed = "BlobEndpoint=" + ca.BlobStorageUri.PrimaryUri + ";SharedAccessSignature=" + sas; var container = new Regex("Container=[^;]*").Match(arg); if (container.Success) { signed += ";" + container.Value; } Console.WriteLine("{0}", signed); } catch (Exception e) { Console.WriteLine("Error: {0}", e); } }
static string GetAccountSASToken() { // To create the account SAS, you need to use your shared key credentials. Modify for your account. CloudStorageAccount storageAccount = CloudStorageAccount.Parse( CloudConfigurationManager.GetSetting("StorageConnectionString")); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Update | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Table, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.Subtract(new TimeSpan(4, 0, 0)), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
static string GetAccountSASToken() { // To create the account SAS, you need to use your shared key credentials. Modify for your account. const string ConnectionString = ""; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConnectionString); // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(24), Protocols = SharedAccessProtocol.HttpsOnly }; // Return the SAS token. return(storageAccount.GetSharedAccessSignature(policy)); }
private string GetSasTokenForImportExport() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(this.config.IoTHubImportStorageAccount); var policy = new SharedAccessAccountPolicy { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.Delete | SharedAccessAccountPermissions.Add | SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Update, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(60), Protocols = SharedAccessProtocol.HttpsOnly }; return(storageAccount.GetSharedAccessSignature(policy)); }
public static string GetAccountSASToken() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["BlobStorageConnectionString"]); // create a new access policy for the account SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write | SharedAccessAccountPermissions.List, Services = SharedAccessAccountServices.Blob | SharedAccessAccountServices.File, ResourceTypes = SharedAccessAccountResourceTypes.Service, SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(2), Protocols = SharedAccessProtocol.HttpsOrHttp, SharedAccessStartTime = DateTime.UtcNow }; // return the SAS token return(storageAccount.GetSharedAccessSignature(policy)); }
static string GetAccountSASToken(CloudStorageAccount storageAccount, bool source) { var permissions = source ? SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.List | SharedAccessAccountPermissions.Delete : SharedAccessAccountPermissions.Create | SharedAccessAccountPermissions.Write; // Create a new access policy for the account. SharedAccessAccountPolicy policy = new SharedAccessAccountPolicy() { Permissions = permissions, Services = SharedAccessAccountServices.Blob, ResourceTypes = SharedAccessAccountResourceTypes.Container | SharedAccessAccountResourceTypes.Object, SharedAccessExpiryTime = DateTime.UtcNow.AddHours(96), Protocols = SharedAccessProtocol.HttpsOnly }; // Return the SAS token. return(storageAccount.GetSharedAccessSignature(policy)); }