admin文件夹权限..不允许访客

问题描述:

我有一个会员网络应用程序。用户是 管理员或访客用户(只有2个角色)admin文件夹权限..不允许访客

我在此应用程序中有一个admin文件夹和一个guest文件夹。我想要 管理员访问这两个文件夹和来宾不访问管理文件夹。

我没有使用.NET成员/角色/配置文件框架。什么是 保护该管理文件夹的最简单方法?

我读一些有关webconfig改变位置......但不要硝酸钾放在哪里是?

任何建议???

我的web配置

<appSettings> 
    <!-- 
    <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" /> 
    --> 
    <add key="ChartImageHandler" value="storage=memory;deleteAfterServicing=true;"/> 
</appSettings> 
<connectionStrings> 
    <add name="abs" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=absDB;Integrated Security=True" providerName="System.Data.SqlClient"/> 
</connectionStrings> 


<system.web> 
    <identity impersonate="true"/> 
    <!-- 
     Set compilation debug="true" to insert debugging 
     symbols into the compiled page. Because this 
     affects performance, set this value to true only 
     during development. 
    --> 
<roleManager enabled="true" /> 
    <compilation debug="true"> 
     <assemblies> 
      <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
      <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     </assemblies> 
    </compilation> 
    <!-- 
     The <authentication> section enables configuration 
     of the security authentication mode used by 
     ASP.NET to identify an incoming user. 
    --> 
    <authentication mode="Forms"> 
     <forms loginUrl="Login.aspx" name="Cookie" timeout="120" path="/"> 
     </forms> 
    </authentication> 
    <authorization> 
     <deny users="?"/> 
     <allow users="*"/> 
    </authorization> 
    <sessionState mode="InProc" cookieless="false" timeout="122"/> 
    <!-- 
     The <customErrors> section enables configuration 
     of what to do if/when an unhandled error occurs 
     during the execution of a request. Specifically, 
     it enables developers to configure html error pages 
     to be displayed in place of a error stack trace. 

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
     <error statusCode="403" redirect="NoAccess.htm" /> 
     <error statusCode="404" redirect="FileNotFound.htm" /> 
    </customErrors> 
    --> 
    <pages> 
     <controls> 
      <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     </controls> 
    </pages> 
    <httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
    </httpHandlers> 
    <httpModules> 
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
    </httpModules> 
</system.web> 

试试这个:

<configuration> 

    <!-- ... all other elements ... --> 

    <location path="Guests_Folder"> 
     <system.web> 
     <authorization> 
      <allow roles="Administrator, Guest"/> 
      <deny users="*"/> 
     </authorization> 
     </system.web> 
    </location> 
    <location path="Admin_Folder"> 
     <system.web> 
     <authorization> 
      <allow roles="Administrator"/> 
      <deny users="*"/> 
     </authorization> 
     </system.web> 
    </location> 
</configuration> 

将其放到<configuration>标签

+0

我试过一切...但它不工作...客人仍然可以打开管理文件夹中的页面... – user175084 2010-01-19 00:56:19

+0

可以建议什么是错误的我的webconfig谢谢.. – user175084 2010-01-19 00:56:50

使用访客里面有一个登录?如果没有,您可以在具有Web配置的guest文件夹中放入Web配置。

其主要思想是,你可以改变谁的,你想用正确的允许控制或拒绝要授予访问权限的角色元素每个文件夹中添加Web配置获得访问。如果客人是真正的客人,这是最简单的。即未登录。事实上,每个文件夹中都有一个与根不同的配置文件,这是让授权元素正常工作所需了解的主要内容。

你不想重复整个web.config文件,只是授权部分。

+0

我试过你的方式但没有任何事情发生......我应该从我的orignal网络配置文件中删除,如上所示...你可以建议..因为我知道即时通讯非常接近解决它 – user175084 2010-01-19 00:58:03