2011-05-24 205 views
0

我有一個ASP.NET網站,在此我想限制管理員文件夾僅限於SQL Server表中具有「管理員角色」的用戶(tbl_Users_Admin有列爲UID,PWD ,名稱,角色,狀態)。其餘所有根網頁我都想被任何用戶公開訪問。限制管理頁面僅限管理員用戶

我不會使用ASP.NET成員資格。

管理員用戶剛剛獲得URL(www.Website.com/Admin/Login.aspx)。

我有兩個Login.aspx頁面的根目錄以及管理文件夾。

我試圖通過表單身份驗證解決它,但我無法解決它。

很少有論壇建議創建兩個不同的Web.Config文件(一個用於網站的根文件夾,另一個用於管理文件夾),但它對我來說似乎是效率低下的方式。

但我沒有成功解決它。

雖然我試圖做到這一點使用如在根web.config文件如下:

<location path="Admin"> 
    <system.web> 
<authentication mode="Forms"> 
     <forms loginUrl="/Admin/Login.aspx" name=".ASPXFORMSAUTH" defaultUrl="/Admin/Login.aspx" > 
     </forms> 
    </authentication> 
    <authorization> 
    <allow roles="administrators" /> 
     <allow users="admin" /> 
     <deny users="?" /> 
    </authorization> 
    <sessionState mode="InProc" cookieless="false" timeout="20"> 
    </sessionState> 
    <customErrors defaultRedirect="~/Admin/ErrorPages/Error.aspx" mode="On"> 
     <error statusCode="404" redirect="~/Admin/ErrorPages/Error.aspx" /> 
    </customErrors> 
    <compilation debug="true"> 
     <codeSubDirectories> 
      <add directoryName="CSharp"/> 
      <add directoryName="VB"/> 
     </codeSubDirectories> 
    </compilation> 
    </system.web> 
    </location> 

而對於根頁面(公共頁面)的其餘部分:

<system.web> 
    For rest of the root pages (Public Pages) 
</system.web> 
+0

<位置路徑= 「管理員」> <認證模式= 「表單」> <形式loginUrl = 「/管理/的Login.aspx」 名稱= 「ASPXFORMSAUTH」 defaultUrl = 「/Admin/Login.aspx」> <授權> <允許角色= 「管理員」/> <允許用戶= 「管理員」/> <的sessionState模式= 「是InProc」 無Cookie = 「假」 超時= 「20」> - 對於剩下的根頁面(公共頁面)的: - 唧唧歪歪 2011-05-24 05:51:56

回答

1

您不需要在web.config中添加Admin文件夾。

只需在下的configuration部分添加以下內容。

<location path="Admin"> 
    <system.web> 
     <authorization> 
      <deny users="?"/> 
      <allow roles="Admin"/> 
      <deny users="*"/> 
     </authorization> 
    </system.web> 
</location> 
+0

感謝阿赫塔爾,我會盡量解決方案。 – 2011-08-05 16:15:06