| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // 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;
- 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
- var serviceCollection = new ServiceCollection();
- serviceCollection.AddLogging();
- serviceCollection.AddDataProtection()
- .PersistKeysToAzureBlobStorage(container, "keys.xml");
- var services = serviceCollection.BuildServiceProvider();
- var loggerFactory = services.GetService<LoggerFactory>();
- loggerFactory.AddConsole();
- // Run a sample payload
- var protector = services.GetDataProtector("sample-purpose");
- var protectedData = protector.Protect("Hello world!");
- Console.WriteLine(protectedData);
- }
- }
- }
|