Analytics

2012年4月24日 星期二

[ASP.NET]使用 authentication mode為Forms時,如何讓未登入的使用者也能看到登入畫面上的圖片(Authentication mode when using Forms, how to not logged in users can see the pictures on the sign-in screen)


問題
使用 authentication mode為Forms時,如何讓未登入的使用者也能看到登入畫面上的圖片



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

location path為指定網站下子目錄的權限,上面是將Account跟Images兩個資料夾開放存取權限給尚未登入的使用者

沒有留言:

熱門文章