Вы должны будете реализовать эквивалент алгоритма, определенного здесь:
http://msdn.microsoft.com/en-us/library/dd179428.aspx
Однако есть более простой способ, который я рекомендую, если это возможно.Я бы попросил ваше приложение ASP сделать ASMX (или эквивалентный вызов WCF) приложению .NET, которое возвращает подпись общего доступа (SAS) с коротким сроком службы (например, с истечением 10 минут).Просто передайте имя PDF-файла, который вы загрузите, и попросите его вычислить подпись для вас с правами на запись.Получив подпись, вы можете просто ПОСТАВИТЬ ее, не беспокоясь о ее подсчете.Если PDF очень большой (> 64 МБ), у вас возникнет проблема, когда вам нужно беспокоиться о разбиении на блоки, но для небольших PDF-файлов вы можете выполнить очень простую операцию PUT на SAS, не беспокоясь об этом.
Код для этого тривиален:
var blobName = "foo.pdf"; //taken from ASP app
var blob = container.GetBlobReference(blobName);
var sas = blob.GetSharedAccessSignature(new SharedAccessPolicy()
{
Permissions = SharedAccessPermissions.Write,
SharedAccessExpiryTime = DateTime.AddMinutes(10)
});
Контейнер в этом случае является тем, куда вы хотите, чтобы пользователи загружали.Переменная 'sas' будет содержать часть строки запроса, которую вам нужно отправить.Вам просто нужно добавить его (например, blob.Uri.AbsoluteUri + sas).
С этим решением ваше приложение ASP не знает о хранилище больших двоичных объектов Windows Azure и подробностях, и только ваше приложение .NET должно знатьключ или как рассчитать SAS.