天天看點

使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)

網站結構如下:

    /default.aspx

    /login.aspx

    /adminlogin.aspx

    /member/*.aspx

    /admin/*.aspx

需求:通路/member/路徑下的頁面的請求轉向到/login.aspx;

             通路/admin/路徑下的頁面的請求被轉向到/adminlogin.aspx;

一開始,自己假想在/Web.config中作如下配置可以達到目的:

使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
<system.web>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
    <authentication mode="Forms">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        <forms loginUrl="/Login.aspx" name=".ASPXFORMSAUTH">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        </forms>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
    </authentication>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
</system.web>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
<location path="member">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
    <system.web>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        <authorization>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
            <deny users="?"/>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        </authorization>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
    </system.web>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
</location>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
<location path="admin">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        <authentication mode="Forms">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
            <forms loginUrl="/AdminLogin.aspx" name=".ASPXFORMSAUTH">
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
            </forms>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
        </authentication>
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)
使ASP.NET網站Forms驗證可以指定多個登入頁面(轉自yicone)

但很快發現,這樣會導緻一個運作時錯誤:

在應用程式級别之外使用注冊為 allowDefinition='MachineToApplication' 的節是錯誤的

Google了幾下,遇到同樣錯誤的不少,但問題相似的不多。于是臨時采用了一種變通的做法(急于解決問題,可能有良好的/更好的解決方案)。兩個步驟:

1. 定義/LoginHandler.ashx。在ProcessRequest方法中,