Asp.net

忽略預設文件的表單身份驗證

  • September 29, 2010

我花了一天半的時間試圖解決這個問題。基本上有一個 ASP.net 網站,在 IIS7 上使用 Framework 4.0 進行表單身份驗證。

授權的東西似乎對每個場景都很好,除了在沒有指定文件的情況下點擊它(應該解析為預設文件)。

例如(請不要在網站上苛刻,它仍在開發中;)), <http://www.rewardroster.com/Default.aspx>完美執行,此頁面應允許按照 web.config 中指定的方式進行匿名訪問。

但是如果我直接點擊 www.rewardroster.com 它會重定向到登錄頁面,返回 URL 設置為“/”或 Login.aspx?ReturnUrl=%2f

我嘗試過的一些事情:

1)將身份驗證設置為無,然後預設文件工作,所以這不是問題。

  1. 將 DefaultDocument 屬性添加到 Web.config

  2. 刪除了 IIS 預設文件列表中除 Default.aspx 之外的所有條目

  3. 在 Config 中添加 MachineKey 條目

  4. 在 IIS 中從集成管道切換到經典管道

這是我的配置中的內容:

 &lt;authentication mode="Forms"&gt;
   &lt;forms name="appNameAuth" loginUrl="Login.aspx" protection="All" timeout="60" slidingExpiration="true" defaultUrl="Default.aspx" path="/"&gt;
   &lt;/forms&gt;
 &lt;/authentication&gt;
 &lt;/authentication&gt;

&lt;location path="Default.aspx"&gt;

非常感謝您抽出寶貴時間,希望有人知道這裡發生了什麼。

這是我的解決方案:

Global.asax, method:Application_BeginRequest中,放置以下內容:

if (Request.AppRelativeCurrentExecutionFilePath == "~/")  
  HttpContext.Current.RewritePath("HomePage.aspx");

很好很簡單,如果您的網站基於配置變數使用多個首頁,您就有機會圍繞要使用的首頁建構邏輯。

德米特里·阿爾克

引用自:https://stackoverflow.com/questions/3824951