2009-09-16 143 views
4

我在我的網站中使用基於表單的身份驗證來保護其中的文件夾。我現在必須在該文件夾中開發兩個新頁面,並且在測試和調試新窗體時我想關閉安全性。我已將網站的web.config文件中的身份驗證模式更改爲mode =「None」,並且已從受保護的文件夾中刪除了web.config文件。我刪除了瀏覽器中的所有cookie,但是當我從該文件夾加載頁面時,仍然被重新路由到登錄頁面。如何禁用表單身份驗證

如何暫時禁用網站中的表單身份驗證?

9/25/2009 - 我在根web.config文件中設置了窗體身份驗證=「無」。我從表單身份驗證已經實現的兩個子文件夾中刪除了web.config文件。我清除了緩存並刪除了Cookie。仍然要求我登錄才能查看文件夾中的頁面。我導航到一臺以前從未去過的機器上的頁面,並被要求在那裏登錄。這被緩存在服務器上不會放過的網站的某處。

回答

0

將authenticode設置爲none應該這樣做。一定有你缺少的東西,你確定你正在瀏覽你更新的部署代碼嗎?

+0

右鍵單擊 - 在瀏覽器中查看。 – pthalacker 2009-09-16 17:21:44

+0

我確定我錯過了一些東西。這就是爲什麼我發佈的問題 – pthalacker 2009-09-16 17:24:12

1

您可以使用位置標記在web.config爲擔保目錄overidde安全對這些頁面:

<location path="secureddir/newform.aspx"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 

http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx

4

嘗試添加以下信息到您的web.config。這將從所需授權中刪除路徑中的項目。

<location path="XXXXXXXXX"> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
    </location> 
+0

我試過這個,沒有喜悅。我再次嘗試沒有路徑屬性MSDN說將適用於當前目錄和所有子目錄,仍然沒有喜悅。我嘗試添加用戶=「?」也依然沒有喜樂。 – pthalacker 2009-09-16 17:23:25

0

我有這個問題之前 - 這可能不屬於你,但我會提到,這是導致我的認證形式,以保持上來的內存中的cookie。我通過嘗試不同的瀏覽器,即FF,Chrome,而不是IE瀏覽器發現。

+0

我正在使用FireFox作爲默認設置。我只是嘗試使用開發服務器IIS而不是本地主機在IE中打開其中一個頁面。仍然沒有快樂。 – pthalacker 2009-09-16 18:51:24

+0

也許在根和受保護的文件夾之間有一箇中間配置文件? 或者web.config文件指向另一個用於身份驗證的配置文件: 或者machine.config身份驗證部分以某種方式被使用? 或者在global.asax中有一些自定義身份驗證? – Steve 2009-09-17 12:39:32

+0

Global.asx中的唯一一件事是404錯誤的陷阱。 web.config中沒有configSource。據我所知,沒有人碰過machine.config,所以它應該處於原始的默認狀態。 只有三個web.config文件 - 一個在根目錄中,一個在Secure文件夾中,我將所有登錄和用戶管理頁面放在一個包含需要安全訪問的內容的文件夾中。您是否說一個文件夾中的web.config文件可能會影響對等文件夾的行爲?這將是討厭的。 - pamela – pthalacker 2009-09-18 13:46:15

1

您可能有一個正在調用FormsAuthentication.RedirectToLoginPage()的頁面(或基類或主頁面);

+0

我所有的身份驗證重定向都是使用web.config文件開始的。唯一的重定向來自Logout.aspx頁面。沒有任何課程或母版頁與安全性有關。 – pthalacker 2009-09-18 21:18:35

0

嘗試刪除模式=「XXXX」從鑑定節點,並發表評論授權節點

0

我希望能夠在整個應用內停用認證,同時調試,所以我做了以下內容:

1)創建了這個類。

namespace System.Web.Mvc 
{ 
    public class SwitchableAuthorizeAttribute : AuthorizeAttribute 
    { 
     public static bool Enabled = true; 

     public override void OnAuthorization(AuthorizationContext filterContext) 
     { 
      if (Enabled) 
      { 
       base.OnAuthorization(filterContext); 
      } 
     } 
    } 
} 

2)與[SwitchableAuthorize]整個申請取代了[授權]屬性。

3)需要時關閉授權。例如,添加以下到App_Start/AuthConfig.cs:

public static class AuthConfig 
{ 
    public static void RegisterAuth() 
    { 
     #if DEBUG 
     SwitchableAuthorizeAttribute = false; 
     #endif 

     ...   
    } 
} 

你可能有比DEBUG的其他條件。這種方法將允許您隨時以編程方式啓用/禁用授權。

如果您的頁面需要登錄用戶信息,則可以通過執行一些虛假登錄而不是簡單地跳過base.OnAuthorization()來增強此方法。