问题:
在根目录下,有一个admin 文件夹, 设置这个文件夹 只有账号为admin (前台的cookies为 Request.Cookies["User"]["name"] )的用户才能访问该文件夹权限。
希望各位大哥 给出一个完整的例子,并且要有注释,网上的这个代码一大堆,但是就是看不太明白。

解决方案 »

  1.   

    admin文件夹是干什么的  里面都是页面?
      

  2.   

    <system.web> <!--添加当前权限设置-->
    <authorization>
    <allow roles="webAdmin"/>
    <allow roles="superAdmin"/>
    <deny users="*"/>
    </authorization></system.web>
    <system.web> <!--添加当前目录权限设置-->
    <authorization>
    <allow roles="Admin"/>
    <deny users="*"/>
    </authorization>
    <siteMapNode url="" title="系统" roles="superAdmin,webAdmin">
    一般通过角色控件用户访问操作</system.web>
      

  3.   

    <?xml version="1.0" encoding="utf-8"?>
    <!--XML文件的声明,包伙版本和编码形式-->
    <!--  注意: 除了手动编辑此文件以外,您还可以使用
        Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
         “网站”->“Asp.Net 配置”选项。
        设置和注释的完整列表在
        machine.config.comments 中,该文件通常位于
        \Windows\Microsoft.Net\Framework\v2.x\Config 中
    -->
    <!--XML文件的根元素-->
    <configuration>
      <!--appSettings:包含自定义应用程序设置,如文件路径-->
      <appSettings>
        <add key="conn" value="select employeeid.lastname,city from employees"/><!--这里可以换做连接数据库的只需要将value的值改变为连接字符串-->
      </appSettings>
      <!--connectionStrings:ASP.NET应用程序指定数据库连接字符串(名称/值对
      的形式)的集合-->
      <connectionStrings>
        <add name="conn" connectionString="server=.;database=northwind;uid=sa;pwd=;"/>
      </connectionStrings>
        <system.web>
          <!--pages:设置页面属性,buffer是否缓存[true:缓存,false:不缓存]-->
          <pages buffer="true"></pages>
            <!--
                设置 compilation debug="true" 将调试符号插入
                已编译的页面中。但由于这会
                影响性能,因此只在开发过程中将此值
                设置为 true。
            -->
          <!--compilation:页面是否调试编译-->
          <!--设置程序是否调试,调试可以方便找出错误,不调试可以使程序运行的速度提高-->
            <compilation debug="false" />
            <!--
                通过 <authentication> 节可以配置 ASP.NET 使用的
                安全身份验证模式,
                以标识传入的用户。
            -->
          <!--  身份验证
              此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
              "Forms"、 "Passport" 和 "None"          "None" 不执行身份验证。
              "Windows" IIS 根据应用程序的设置执行身份验证
                (基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
              "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
               在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
              "Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
               它为成员站点提供单独登录和核心配置文件服务。
        -->
          <authentication mode="Forms">
            <!--身份验证-->
            <forms name="name" defaultUrl="index.aspx" loginUrl="login.aspx" protection="All"/>
          </authentication>
          <!--  授权
               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
              (未经身份验证的)用户。
        -->      <authorization>
            <allow users="*" />
            <!-- 允许所有用户 -->
            <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
          </authorization>
            <!--
                如果在执行请求的过程中出现未处理的错误,
                则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
                开发人员通过该节可以配置
                要显示的 html 错误页
                以代替错误堆栈跟踪。
            -->
          <!--定义出现错误时候访问的页面!-->
          <!--customErrors:自定义错误信息,有叁种显示方式-->
            <customErrors mode="On" defaultRedirect="errors.aspx">
              <!--
              <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
                -->
            </customErrors>
           
        </system.web>
      <!--location:指定应用子配置设置的资源。此元素也锁定配置设置,以防
      止子配置文件重写这些设置-->
      <location path="Admin">
        <system.web>
          <authorization>
            <!--禁止匿名用户访问Admin文件夹及其下的文件-->
            <deny users="?"/>       
          </authorization>
        </system.web>
      </location>
    </configuration>
      

  4.   

    能给我做个例子吗?我对config 这一块 不是很明白,你说的和网上的差不多。大概意思我也能明白,但是我做的时候就是出错。
      

  5.   

    system.web> <!--添加当前权限设置--> 
    <authorization> 
    <allow roles="webAdmin"/> 
    <allow roles="superAdmin"/> 
    <deny users="*"/> 
    </authorization> </system.web> 
    <system.web> <!--添加当前目录权限设置--> 
    <authorization> 
    <allow roles="Admin"/> 
    <deny users="*"/> 
    </authorization> 
    <siteMapNode url="" title="系统" roles="superAdmin,webAdmin"> 
    一般通过角色控件用户访问操作 </system.web>
      

  6.   

    ----------------------------------补充------------------------------
    情况 补充。。目前 在根目录下有2个文件夹  一个事admin, 一个事user要求,当用户登陆后可以访问user 但是不可以访问 admin ,只有当账号为admin的用户登陆以后 才可以访问admin 文件夹
      

  7.   

    http://blog.csdn.net/cityhunter172/archive/2005/11/13/528463.aspx
    你看了这个应该会对你有帮助
      

  8.   

    或者就是在admin文件夹下每个页面文件的page_load事件都判断下,cookie是否为空……为空就不让访问……
      

  9.   

    对客户端机器的权限不是config能配置的吧?
      

  10.   

    主要就是<allow roles="Admin"/> 这句话。
      

  11.   

    这个应该是那个form认证高的东西吧
      

  12.   

    呵呵,不好意思。。忘记了。
    解决的答案我已经写在我的博客里面了hi.baidu.com/kmiaoer  有兴趣的朋友可以去看看