日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows Azure Storage (4) Windows Azure Storage Service存储服务之Blob Share Access Signature

發布時間:2024/9/21 windows 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows Azure Storage (4) Windows Azure Storage Service存储服务之Blob Share Access Signature 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  《Windows Azure Platform 系列文章目錄》

?

  如果讀者使用的是國內由世紀互聯運維的Azure China服務,請參考筆者的博文Azure China (4) 管理Azure China Storage Account

  如果需要參考Azure China使用SAS Token的Sample Code,請參考筆者的博文:Azure China (10) 使用Azure China SAS Token

?

  在之前一章的內容中,我們可以了解到:用戶可以把文件(比如照片、Word、Excel等)上傳到Windows Azure Storage Blob中,然后通過Http匿名訪問這個資源。

  但是這樣會出現一個問題:我們沒有對這個資源進行訪問控制

  對于企業級應用來說,信息安全是非常重要的。如果一個企業應用部署到Windows Azure公有云上,文件資源都上傳到Azure Storage Blob中,企業外部人員都可以通過Http匿名訪問這些資源,顯然這個信息安全是遠遠不夠的。那么如何為Blob資源設置訪問權限,使得只有經過授權的人才能訪問它們呢?這個時候就需要使用Blob Service的功能:Shared Access Policy和Shared Access Signature。

  Shared Access功能首先需要將Container設置為不允許匿名訪問的狀態,即通過URL無法訪問Blob信息。否則的話,Shard Access的功能就沒有任何意義了。Shared Access安全機制由一系列定義為Shared Access Policy對象構成。每個Shared Access Policy定義了一種安全訪問策略,它包括:

  • Permissions:定義允許對Blob使用的功能。這些功能可以復合設置,即同時擁有一個或一個以上的功能,通過"或"操作來實現。具體的Permission選項包括:
    • None:不允許任何操作
    • Read:允許讀取操作
    • Write:允許寫入操作
    • Delete:允許刪除操作
    • List:允許列舉Container下Blob的操作
  • SharedAccessStartTime:Blob允許操作的開始時間,如果不設置這個屬性則為當前時間。
  • SharedAccessExpiryTime:Blob可操作的過期時間。

  這樣在對Blob或Container進行操作的時候,首先需要獲得一個Shared Access Signature。即通過剛才提到的Shared Access Policy創建一個Shared Access Signature,然后將這個Signature附加到訪問Blob的url后面,就能夠以安全的形式訪問這個Blob了。如果超過了Shared Access Policy設定的過期時間,或者執行的操作了允許的范圍,那么這個操作將會無法完成。

?

  接下來,請下載我的實例,并且用Visual Studio 2010打開,開始本次的演示。

  

  本次實例的主要功能是:創建不允許的匿名訪問的Blob Container,然后把本地的照片上傳到這個Container里。最后設置這個Container的訪問權限和過期時間。

  核心代碼在Default.aspx.cs,分別是:

  1.創建Container的時候,將Container訪問級別設置為不允許匿名訪問

private void EnsureContainerExists(){var container = GetContainer();// 檢查container是否被創建,如果沒有,創建container container.CreateIfNotExist();//設置Container不能被訪問container.SetPermissions(new BlobContainerPermissions(){PublicAccess = BlobContainerPublicAccessType.Off});}

  2.設置獲取的訪問權限以及過期時間,即對應的Shared Access Policy。由于這個Signature只是為了在后續網頁呈現的時候訪問Blob內容,因此可以設置以個比較短的過期時間。這樣做的好處是,及時而已用看到了這個URL和Signature的內容,超過了時間限制后也無法訪問這個Blob了,從而達到了保護照片以及防盜鏈的功能。設置過期時間為5秒鐘,只允許讀取權限。然后GetSharedAccessSignature方法將會返回一個字符串,即Shared Access Signature。

var sas = blob.GetSharedAccessSignature(new SharedAccessPolicy(){
//設置權限為讀權限Permissions
= SharedAccessPermissions.Read,
//設置過期時間為5秒鐘SharedAccessExpiryTime
= DateTime.UtcNow.AddSeconds(5)});var secureURl = blob.Uri.AbsoluteUri + sas;LblUrl.Text = secureURl.ToString();

  3.啟動項目

?

  • 點擊"瀏覽",選擇本地機器上的照片文件
  • 選擇中后,點擊 "Upload Image"
  • 上傳完畢,會在頁面上顯示這個圖片訪問的url

  4.快速選中這個url,在IE瀏覽器地址中輸入,可以查看到上傳成功的圖片

?

  5.如果超過訪問時間(5秒)訪問這個圖片資源,您會得到下圖所示的錯誤信息。

  

?

  注意:關于Blob Container的配置在CSCFG配置里面,你可以使用VS進行配置

  

?

分類:?Azure Storage
本文轉自Lei Zhang的博客博客園博客,原文鏈接:http://www.cnblogs.com/threestone/archive/2012/01/20/2553501.html,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的Windows Azure Storage (4) Windows Azure Storage Service存储服务之Blob Share Access Signature的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。