Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 访问已登录用户的Azure Blob存储_Asp.net Mvc_Azure_Azure Storage Blobs - Fatal编程技术网

Asp.net mvc 访问已登录用户的Azure Blob存储

Asp.net mvc 访问已登录用户的Azure Blob存储,asp.net-mvc,azure,azure-storage-blobs,Asp.net Mvc,Azure,Azure Storage Blobs,我有一个MVC应用程序,其中一个用户列表可以将文件上载到GoogleDrive/DropBox,为此,他们只需要对自己进行身份验证,相应的api提供一个“AccessToken”或其他东西,进一步用于从我的web应用程序将文件上载到用户帐户 现在我需要对Azure Blob存储执行同样的操作。为了进行测试,我在那里创建了一个帐户,并使用Accountname和Accountkey创建了一个连接字符串,其作用与此相同: public void UploadFileToBlob1(string fi

我有一个MVC应用程序,其中一个用户列表可以将文件上载到GoogleDrive/DropBox,为此,他们只需要对自己进行身份验证,相应的api提供一个“AccessToken”或其他东西,进一步用于从我的web应用程序将文件上载到用户帐户

现在我需要对Azure Blob存储执行同样的操作。为了进行测试,我在那里创建了一个帐户,并使用Accountname和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存储帐户上登录的用户,并获取“accesstoken”或在用户blob容器上执行文件上载/下载的东西


请注意

当前不支持用户特定的基于令牌的Azure存储访问

然而,我想提出另一种方法。看看这是否有意义(这实质上是对上述肇星评论的延伸)


对于应用程序的每个用户,您要做的是创建一个blob容器(类似于主目录)。当用户登录时,您可以为该容器创建具有适当权限的。因此,用户将能够访问该容器中的资源。由于SAS是为特定容器创建的,因此用户使用该SAS令牌访问另一个容器的任何尝试都将导致错误。

您是否调查过共享访问签名是否满足您的要求?是的,但共享访问签名也需要帐户密钥。因此,我需要使用我的帐户创建SAS,对吗?我不能访问登录的用户帐户,就像我们在谷歌驱动器的情况下可以做的那样,对吗?是的,这正是我想建议的。谢谢高拉夫