2016-08-19 19 views
1

私は、ユーザーのリストがGoogleドライブ/ DropBoxにファイルをアップロードできるMVCアプリケーションを持っています。このため、自分自身を認証する必要があり、対応するAPIは「AccessToken」などを提供します。私のWebアプリケーションからユーザーアカウントにファイルをアップロードするためにさらに使用されます。アクセスAzure Blobログインユーザーのストレージ

今私はAzure Blob Storageで同じことをする必要があります。テストのために私はそこにアカウントを作成し、アカウント名とAccountkeyを使用して、このように同じ操作を行う接続文字列を作成:

public void UploadFileToBlob1(string fileName, byte[] fileData) 
    { 
     // Retrieve storage account from connection string. 
     CloudStorageAccount storageAccount = CloudStorageAccount.Parse(System.Configuration.ConfigurationManager.AppSettings["StorageConnectionString"]); 

     // Create the blob client. 
     CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 

     // Retrieve reference to a previously created container. 
     CloudBlobContainer container = blobClient.GetContainerReference("portalcontainer"); 
     container.CreateIfNotExists(); 

     // Retrieve reference to a blob named "myblob". 
     CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName); 

     // Create or overwrite the "myblob" blob with contents from a local file. 
     Stream stream = new MemoryStream(fileData); 
     blockBlob.UploadFromStream(stream); 
    } 

を今、私は私のアプリにログインしたユーザーは、同じことを行うことができますようにしたいです。

AzureのBLOBストレージの場合、Blobストレージアカウントのログインユーザーを認証し、ユーザーのBLOBコンテナでファイルのアップロード/ダウンロードを実行するための 'accesstoken'などを取得するにはどうすればよいですか。

Azureストレージに固有のトークンベースのアクセスは現在サポートされていません

+1

Shared Access Signaturesが要件を満たしているかどうか調査しましたか? https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-shared-access-signature-part-1/ –

+0

はい、ただし共有アクセス署名にはアカウントキーも必要です。 –

答えて

2

ユーザーをアドバイスしてください。

しかし、私が提案したい別のアプローチがあります。これが理にかなっているかどうかを見てください(これは本質的に上記のZhaoxingのコメントを拡大しています)。

アプリケーションのユーザーごとに、BLOBコンテナ(ホームディレクトリの一種)を作成します。ユーザーがログインすると、適切な権限を持つコンテナに対してShared Access Signature (SAS)を作成できます。したがって、ユーザーはそのコンテナ内のリソースにアクセスできます。 SASは特定のコンテナ用に作成されるため、ユーザーがそのSASトークンを使用して別のコンテナにアクセスしようとすると、エラーが発生します。

+0

これは私のアカウントを使ってSASを作成する必要がありますか?私はGoogleドライブの場合に行うことができるように、ログインしたユーザーアカウントにアクセスできません。 –

+0

これは正しいです。 –

+0

あなたの返事にGauravに感謝します... –

関連する問題