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