第一个问题Forms授权
最后这段:访问者同时具有了user和role信息,就可以据此在web.config中用role来控制用户的访问权限了.这里我有点不明白根据后面的代码向 Ctx 加入了用户角色后我就可以不管了只用在web.config设置以下内容进行来控制是访问?但我看来好像不行授权设置是在你要控制的那个目录下的web.config文件中来设置:
<authorization>
 <allow users=”comma-separated list of users” roles=”comma-separated list of roles” verbs=”comma-separated list of verbs” /> 
   <deny users=”comma-separated list of users” roles=”comma-separated list of roles” verbs=”comma-separated list of verbs” />
</authorization>之后就是从msdn中的一大堆代码例子。
HttpContext Ctx = App.Context ; //获取本次Http请求相关的HttpContext对象
Ctx.User = new GenericPrincipal (Id, Roles) ; //将原有的Identity加上角色信息新建一个GenericPrincipal表示当前用户,这样当前用户就拥有了role信息

解决方案 »

  1.   

    我主要是对其中两处有点统问题,
    1、系统是如何提取web.config文件进行确定现在对象中存在正确的值的在哪个事件中完成的。
    2、这个问题是基于第一个问题,不用手工自动取值authorization中的节点users、roles是由系统定义好的吗。我想扩展应如何实别呢,别告诉我让我读节点值
      

  2.   

    快速学习asp.net的资料
    http://218.27.204.17/aspnet/a_user.aspx
      

  3.   

    kaiqiao521(K) 不要再发你的垃圾了
      

  4.   

    用users属性可以定义自己的用户列表,comma-separated list of users的意思是用逗号分割的用户列表,比如你可以定义<allow users="tom,jack,ccqhydzcc" />
      

  5.   

    处理是自动的吗?即我对web.config中节点设置了
    <allow users="tom,jack,ccqhydzcc" roles=”admin”/>
    我就可以用这个文件设置就可对访问进行控制了吗?
    还有users、roles、verbs这三个属性是系统定义好的吗?我如果加一个us这样的属性如何识别。
      

  6.   

    对,这三个属性是系统定义好的,有特定的处理程序进行处理,如果只是简单的加一个us等肯定是不行的,会报错。具体你可以看看这里:
    http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpgenref/html/gngrfallow.asp当然光是这样设置还不能对访问请求进行控制,
    <allow users="tom,jack,ccqhydzcc" />
    这样设置的意思只是授权了用户tom,jack,ccqhydzcc可以访问本目录及其子目录中的文件,但在授权之前首先要对来的请求进行身份验证,从而知道该请求是谁,这就需要编写代码了。具体你可以看看这篇
    http://www.microsoft.com/china/technet/security/guidance/secmod17.mspx