2011-05-24 143 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