2012-07-19 93 views
0

有人可以幫我解釋一下嗎?我有一個C#網站應用程序,我想在其中訪問網站目錄中的文檔進行授權。ASP.NET Web應用程序中的授權文件訪問

如果文檔的用戶請求說通過我的網站,http://www.mywebapp.com/documents/test.pdf的鏈接,在瀏覽器中打開前檢驗.pdf PDF,其實我是想驗證用戶被授權訪問基於角色,他得到了PDF格式。我已經在IIS中爲文件夾「文檔」啓用了表單身份驗證,如果用戶未通過身份驗證,則系統將重定向到登錄頁面。我對這一切都很好,但堅持授權。

我無法在web.config中設置角色,因爲它對於不同的用戶會有所不同。用戶角色存儲在該特定用戶的httpcookie中。

而且在我的文檔文件夾中會有針對不同角色的不同文檔。

對稱爲供應商的角色說test.pdf。所以只有供應商可以訪問此pdf

另一個文檔form.pdf角色供應商只有角色供應商的用戶可以看到這個pdf。

我應該在加載瀏覽器中的pdf之前寫一些處理程序來執行嗎? 或者當有人請求時/文件/我應該有一個URL重寫執行一個aspx頁面來驗證授權,如果授權顯示頁面?

任何人都可以請幫助我瞭解如何實施此授權。

感謝您的幫助!

感謝, KK

+1

你的標籤「autorize.net」不看有關這個問題......我缺少的問題和標籤之間的一些隱藏的鏈接? – 2012-07-20 00:36:36

回答

1

看起來你的問題是「我怎麼能在我的網頁上檢查cookie值,並用正確的文檔類型返回一個文件的流時,cookie是OK」。

  • 確保你處理所有的請求(使用MVC比的WinForms做要容易得多,但有可能在以後的太)
  • 讀取和驗證cookie的
  • 回報文件,如果檢查通過,不要忘了設置「content-diposition」和「content-type」標題。再次文件導致MVC更易於使用...如果使用模擬,請確保使用正確的帳戶讀取文件內容。
+0

謝謝,這有助於! – Krishnakumar 2012-07-20 14:41:32

+0

@Krishnakumar,如果有幫助,接受這個答案並關閉問題。 – 2013-11-21 23:27:11

0

您可以添加以下代碼的web.config,並嘗試

<location path="documents/test.pdf "> 
     <system.web> 
       <authorization> 
         <allow roles="Vendors"/> 
         <deny users="*"/> 
       </authorization> 
     </system.web> 
</location> 

<location path="documents/form.pdf "> 
     <system.web> 
       <authorization> 
         <allow roles="Role Supplier"/> 
         <deny users="*"/> 
       </authorization> 
     </system.web> 
</location> 
+0

謝謝您的建議 – Krishnakumar 2012-07-20 14:41:20

相關問題