0
我正在使用表單身份驗證。重定向某些頁面並拒絕其他人訪問?
根Web.config有...
<authentication mode="Forms">
<forms loginUrl="~/Auth/Login.aspx" timeout="2880" defaultUrl="~/Search.aspx" />
</authentication>
...因此,如果未認證用戶被拒絕訪問,通過像在子文件夾中的Web.config下面的一個入口......
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
...那麼未登錄的用戶會被重定向到Login.aspx頁面。
第一個問題
如果一個未經驗證的用戶請求的一些(但不是全部)的頁面,或從一個子文件夾(而不是其他)要求的文件,我想通過返回的HTTP拒絕訪問而不是將它們重定向到(HTTP 302)到登錄頁面。
我該怎麼做?當前未經身份驗證的用戶總是被重定向到登錄頁面,而不是被簡單地拒絕訪問。
第二個問題
我還使用「基於角色的權限」,比如我有一個名爲監事的作用。
某些文件夾的訪問僅用於監事所以這些文件夾中有一個web配置像
<system.web>
<authorization>
<allow roles="Supervisor"/>
<deny users="*"/>
</authorization>
</system.web>
如果沒有監督員角色的認證(登錄)用戶試圖訪問,他們也將被重定向到登錄頁面(雖然他們已經登錄)。
我可以改變它嗎(例如,返回HTTP 403或重定向到其他失敗頁面)?
一些,我想拒絕訪問文件的運行過程手動執行此操作(通過返回HTTP 403)是圖像文件,PNG文件,它們沒有Page_Init。 – ChrisW
你應該分開不同文件夾中的文件並在web.config中設置它們的訪問控制 –
我這樣做了(如OP所述),但禁止目錄中的文件重定向(HTTP 302)到登錄頁面,我問的是其中一些可以通過拒絕訪問(HTTP 403)來代替。 – ChrisW