Forms身份验证,为什么<allow roles="Administrators" /><deny users="*" />后,(<allow roles="Administrators" />已经放在><deny users="*" />的前面)所有用户都进不来了?MSDN中意思,这样可以只让Administrators角色中的用户进来,可设置后所有人都进不来了

解决方案 »

  1.   

    我知道*代表全部下面引用MSDN2005原文(ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_ASPNETgenref/html/2d3d9bf6-f914-4c30-ad03-32eea98fa612.htm):下面的代码示例演示如何允许所有 Admins 角色成员进行访问以及如何拒绝所有 users 角色成员进行访问。  复制代码 
    <configuration>
       <system.web>
          <authorization>
             <allow roles="Admins"/>
             <deny users="*"/>
          </authorization>
       </system.web>
    </configuration>
     
      

  2.   

    <allow roles="Administrators" /><deny users="?" />
      

  3.   

    我网站根目录下的Web.config:<?xml version="1.0"?>
    <configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
    <compilation debug="true"/>
    <authentication mode="Forms">
    <forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx"/>
    </authentication>
    </system.web>
    </configuration>网站有一个Admin文件夹,此文件夹下还有一个Web.config:<?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings/>
      <connectionStrings/>
      <system.web>
        <authorization>
          <allow roles="Administrators" />
          <deny users="*" />
        </authorization>
      </system.web>
    </configuration>
      

  4.   

    <allow roles="Administrators" /><deny users="?" />不行这么做,只要通过了验证的用户,不管用户属于什么角色都能进去了
      

  5.   

    <appSettings>
        <add key="strConnection" value="server=(local);database=DB;Persist Security Info=True;Password=;User ID=sa;" />  
        <add key="Manager" value="admin" />  
    </appSettings>admin为用户表里的字段名,这样就把admin设置成管理员
      

  6.   

    ...LS的先看看help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/dv_ASPNETgenref/html/2d3d9bf6-f914-4c30-ad03-32eea98fa612.htm吧我感觉你没明白我在说什么
      

  7.   

    要确认你登录后的用户的角色已经是Administrator
      

  8.   

    完全确认调试跟到Application_AuthorizeRequest中看了httpContext.User = new System.Security.Principal.GenericPrincipal( formsIdentity, Roles );中的Roles 没有错
      

  9.   

    照http://dev.csdn.net/article/18/18958.shtm做的
      

  10.   

    allow放在前面也不行, "*" 代表阻止所有用户访问
    一般是防止匿名登陆,应该<deny users="?" />
      

  11.   

    登陆无验证 硬编码在项目中 只是为了测试forms模式的验证
      

  12.   

    Application_PostAuthenticateRequest(Object sender, EventArgs e)
    把授权的代码放到这个时间里面,我以前和你一样用Application_AuthorizeRequest,怎么都不对!
      

  13.   

    发现了问题 是因为<allow roles="Administrators" />没起作用,但我在页中用User.IsInRole( "Administrators" )返回的却是true
      

  14.   

    hyl8218(openSoul)还是你厉害 分少 见谅 全给你了