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,然而若尚未登入取得身分驗證的使用者,基本上是不允許讀取網站上的資訊,基本上設定會如下:
  1. <authentication mode="Forms">
  2.  
  3.   <forms loginUrl="~/Account/Login.aspx" defaultUrl="~/Acceptance/Check.aspx"  /></authentication>
  4.  
  5. <authorization>
  6.  
  7.   <deny users="?"/></authorization>
  8.  
<deny users="?"/>代表的是未取得身分識別的使用者將被拒絕
loginUrl代表的是尚未驗證身分的使用者將被導向的登入畫面
但是如果首頁上的Form需要顯示圖片的話,就會造成圖片無法顯示,甚至如果登入Form的頁面放在網站的子目錄下,使用者根本無法登入,因此可參考以下設定,作出例外權限如下:
  1. <location path="Account">
  2.  
  3.   <system.web>
  4.  
  5.     <authorization>
  6.  
  7.      <allow users="*"/>
  8.  
  9.     </authorization>
  10.  
  11.   </system.web>
  12.  
  13. </location>
  14.  
  15. <location path="Images">  
  16. <system.web>
  17.  
  18.     <authorization>
  19.  
  20.       <allow users="*" />
  21.  
  22.     </authorization>
  23.  
  24.   </system.web>
  25.  
  26. </location>
  27.  
  28.  
  29.  
location path為指定網站下子目錄的權限,上面是將Account跟Images兩個資料夾開放存取權限給尚未登入的使用者

沒有留言:

熱門文章