檔案下載的許可權控制(asp.net)
來源:互聯網
上載者:User
asp.net|控制|下載 筆者做一個報表展示的網站,報表使用excel形式存放在伺服器,希望登入的人或者有許可權的人才能下載excel報表。但是檔案下載的路徑無法隱藏,所以頁面控制根本沒用。近日在研究iis的時候,突然就豁然開朗了。
首先編輯或者修改網站的web.config,加入或者修改紅色地區
<!-- 身分識別驗證
此節設定應用程式的身分識別驗證策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None"
"None" 不執行身分識別驗證。
"Windows" IIS 根據應用程式的設定執行身分識別驗證
(基本、簡要或整合 Windows)。在 IIS 中必須禁用匿名訪問。
"Forms" 您為使用者提供一個輸入憑據的自訂表單(Web 頁),然後
在您的應用程式中驗證他們的身份。使用者憑證標記儲存在 Cookie 中。
"Passport" 身分識別驗證是通過 Microsoft 的集中驗證服務執行的,
它為成員網站提供單獨登入和核心設定檔服務。
-->
<authentication mode="Forms">
<forms name=".ASPXUSERDEMO" loginUrl="login.aspx" protection="All" timeout="60" path="/"><credentials passwordFormat="SHA1" /></forms>
</authentication>
<!-- 授權
此節設定應用程式的授權策略。可以允許或拒絕不同的使用者或角色訪問
應用程式資源。萬用字元: "*" 表示任何人,"?" 表示匿名
(未經身分識別驗證的)使用者。
-->
<authorization>
<deny users="?"/>
<!-- <allow users="[逗號分隔的使用者列表]"
roles="[逗號分隔的角色列表]"/>
<deny users="[逗號分隔的使用者列表]"
roles="[逗號分隔的角色列表]"/>
-->
</authorization>
接著編寫login.aspx
對於登入成功者加入
FormsAuthentication.SetAuthCookie(uid,false);
FormsAuthentication.RedirectFromLoginPage(uid,false);
開啟iis,找到你的網站,點右鍵,選屬性,-》主目錄-》配置
然後在“映射”中選添加,
添加如上圖。
好了,大功告成,現在再訪問主站下的一個xls文檔http://localhost/sms/1.xls,看到什嗎?
呵呵,沒錯,需要您登入了。當你輸入登入資訊並且登入了您才能下載這個檔案!
對,就這麼簡單,如果加上role,可以進行更複雜的控制。
歡迎交流(maximon@sina.com 無錫國稅瞿惠春)