問題
使用 authentication mode為Forms時,如何讓未登入的使用者也能看到登入畫面上的圖片
解決方法
一般我們使用webconfig authentication mode="Forms"時,都會自己實作驗證的Form,然而若尚未登入取得身分驗證的使用者,基本上是不允許讀取網站上的資訊,基本上設定會如下:
<authentication mode="Forms"><deny users="?"/>代表的是未取得身分識別的使用者將被拒絕
<forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Acceptance/Check.aspx" /></authentication>
<authorization>
<deny users="?"/></authorization>
loginUrl代表的是尚未驗證身分的使用者將被導向的登入畫面
但是如果首頁上的Form需要顯示圖片的話,就會造成圖片無法顯示,甚至如果登入Form的頁面放在網站的子目錄下,使用者根本無法登入,因此可參考以下設定,作出例外權限如下:
<location path="Account">location path為指定網站下子目錄的權限,上面是將Account跟Images兩個資料夾開放存取權限給尚未登入的使用者
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
<location path="Images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
沒有留言:
張貼留言