// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.WindowsAzure.Storage; using LogLevel = Microsoft.Extensions.Logging.LogLevel; namespace AzureBlob { public class Program { public static void Main(string[] args) { var storageAccount = CloudStorageAccount.DevelopmentStorageAccount; var client = storageAccount.CreateCloudBlobClient(); var container = client.GetContainerReference("key-container"); // The container must exist before calling the DataProtection APIs. // The specific file within the container does not have to exist, // as it will be created on-demand. container.CreateIfNotExistsAsync().GetAwaiter().GetResult(); // Configure using (var services = new ServiceCollection() .AddLogging(o => o.AddConsole().SetMinimumLevel(LogLevel.Debug)) .AddDataProtection() .PersistKeysToAzureBlobStorage(container, "keys.xml") .Services .BuildServiceProvider()) { // Run a sample payload var protector = services.GetDataProtector("sample-purpose"); var protectedData = protector.Protect("Hello world!"); Console.WriteLine(protectedData); } } } }