Asp.net
忽略預設文件的表單身份驗證
我花了一天半的時間試圖解決這個問題。基本上有一個 ASP.net 網站,在 IIS7 上使用 Framework 4.0 進行表單身份驗證。
授權的東西似乎對每個場景都很好,除了在沒有指定文件的情況下點擊它(應該解析為預設文件)。
例如(請不要在網站上苛刻,它仍在開發中;)), <http://www.rewardroster.com/Default.aspx>完美執行,此頁面應允許按照 web.config 中指定的方式進行匿名訪問。
但是如果我直接點擊 www.rewardroster.com 它會重定向到登錄頁面,返回 URL 設置為“/”或 Login.aspx?ReturnUrl=%2f
我嘗試過的一些事情:
1)將身份驗證設置為無,然後預設文件工作,所以這不是問題。
將 DefaultDocument 屬性添加到 Web.config
刪除了 IIS 預設文件列表中除 Default.aspx 之外的所有條目
在 Config 中添加 MachineKey 條目
在 IIS 中從集成管道切換到經典管道
這是我的配置中的內容:
<authentication mode="Forms"> <forms name="appNameAuth" loginUrl="Login.aspx" protection="All" timeout="60" slidingExpiration="true" defaultUrl="Default.aspx" path="/"> </forms> </authentication> </authentication> <location path="Default.aspx">非常感謝您抽出寶貴時間,希望有人知道這裡發生了什麼。
這是我的解決方案:
在
Global.asax, method:Application_BeginRequest中,放置以下內容:if (Request.AppRelativeCurrentExecutionFilePath == "~/") HttpContext.Current.RewritePath("HomePage.aspx");很好很簡單,如果您的網站基於配置變數使用多個首頁,您就有機會圍繞要使用的首頁建構邏輯。
德米特里·阿爾克