簡體   English   中英

如何使用Forms身份驗證在ASP.NET Web應用程序中為動態創建的資源配置用戶授權?

[英]How do I configure user authorization on dynamically created resources in an ASP.NET web app using Forms authentication?

假設有些用戶登錄我的網絡應用程序。 它們經過身份驗證(不是匿名用戶),因此可以訪問目錄中的任何資源。 web.config的system.web / authorization部分設置為拒絕匿名用戶訪問,如下所示:

<system.web><authorization>
  <deny users="?" />
</authorization></system.web>

實際上,據我所知,這只能保護通過ASP.NET系統訪問的文件。 如果我在那里刪除JPG文件,那么每個人都可以訪問它,而無需身份驗證/授權。 為了確保所有文件都受到保護,有一個不同的部分:

<system.webServer><security><authorization>
  <add accessType="Deny" users="?" />
</authorization></security><system.webServer>

當然,現在當有人試圖訪問JPG文件時,他們不會被重定向到登錄頁面。 相反,他們得到一個令人討厭的HTTP錯誤401.2 - 未經授權。

現在,假設用戶導致在服務器上創建文件。 在這個精心設計的表單身份驗證和授權方案的上下文中,我是如何確保只有該用戶的Web瀏覽器才能通過它的URL訪問該文件? 例如,我必須修改web.config文件嗎? 如果是這樣,我是否必須手動執行此操作,還是可以通過代碼完成? 經常修改它會導致應用程序被中斷/重啟嗎?

你無法確保這一點。 使用表單身份驗證和授權,您必須明確,列出具體的用戶或角色。 沒有機會動態指定它。

對於動態創建的資源,我使用泛型處理程序。 使用這種方法,不需要保護臨時文件,因為沒有臨時文件。 內容直接流式傳輸給用戶。 在這種方法中,您的保護是應用程序邏輯的一部分,可能在通用處理程序中。

您可以將動態生成的內容作為blob存儲在數據庫表中,而不是存儲在文件系統中。 通過普通應用程序安全邏輯安全訪問記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM