因为不想用 session ,所以转向 FormsAuthentication 认证方法,不过,看了很多资料,有点湖涂,现把几个迷惑的地方说一下,大哥们帮我解释一下:1. 我看到都 是这样的:    在 web.config 中这样设置:    <location path="admins">
    <system.web>
    <authorization>
    <allow roles="Administrator"/>
    <deny users="*"/>
    </authorization>
    </system.web>
    </location>  就是说,把 admins 目录下的所有文件的读取权限只给角色是  Administrator 的用户,但是我的想法是,如果我想把这个目录权限给所有人,只是想把这个目录中的一些文件的权限给用户 Administrator ,我这样的要求,要如何实现呢。假如  admins 目录下有两个文件,一个是 useronly.aspx (此文件权限只给登录后的角色 dministrator),一个是 erverone.aspx (此文件权限给所有人),2.用户登录成功后,进入 useronly.aspx 后,如何能取得到此用户的 ID号 和 用户名呢 ?就是说
FormsAuthentication 认证成功后,如何能把数据库中此人的ID和用户名赋给FormsAuthentication呢。这些地方实在是搞不懂,肯请大哥们帮忙!!

解决方案 »

  1.   

    就是说,把 admins 目录下的所有文件的读取权限只给角色是  Administrator 的用户,但是我的想法是,如果我想把这个目录权限给所有人,只是想把这个目录中的一些文件的权限给用户 Administrator ,我这样的要求,要如何实现呢。
    -->
    <location path="admin/useronly.aspx">
    <system.web>
    <authorization>
    <allow roles="Administrator" />
    <deny users="*" />
    </authorization>
    </system.web>
    </location>
    <location path="admin">
    <system.web>
    <authorization>
    <allow roles="*" />
    </authorization>
    </system.web>
    </location>
    这个可以在 admin 文件夹里 再建一个web.config 文件来单独设置本文件夹的权限
      

  2.   

    Page.User.Identity.Name 应该就可以得到用户名,然后通过用户名得到用户的其他信息
      

  3.   

    我是想在用户登录成功后,能不能把从数库中提取出来的 userid 和 username 这两个变量同时都赋给 FormsAuthentication 中的 cookies,然后,在会员页面,能直接从 FormsAuthentication 中把 userid 和 username 都取过来 ???
      

  4.   

    web.config 文件可以有多个、每一个文夹下都可以有一个 web.config文件,且其只对此文件夹起作用 ?
      

  5.   

    是的,每个文件夹都可以有个web.config,你可以在里面设置authorization权限,但不能设置象authentication这样对根目录才有意义的设置,你也可以用上面提到的location于某些文件上,参考HOW TO: Control Authorization Permissions in an ASP.NET Application
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q316871<configuration>
    <system.web>
    <authentication mode="Forms" >
    <forms loginUrl="login.aspx" name=".ASPNETAUTH" protection="None" path="/" timeout="20" >
    </forms>
    </authentication> <authorization>
    <allow users ="*" />
    </authorization>
    </system.web> <location path="default1.aspx">
    <system.web>
    <authorization>
    <deny users="?" />
    </authorization>
    </system.web>
    </location> <location path="admin">
    <system.web>
    <authorization>
    <deny users="?" />
    </authorization>
    </system.web>
    </location>
    </configuration>
    >>>能不能把从数库中提取出来的 userid 和 username 这两个变量同时都赋给 FormsAuthentication 中的 cookies,然后,在会员页面,能直接从 FormsAuthentication 中把 userid 和 username 都取过来 ???是的,譬如,你可以把userid放在FormsAuthenticationTicket 的UserData里,参考
    http://support.microsoft.com/kb/326340/en-us
      

  6.   

    谢谢大家!是不是可以这样理解 FormsAuthentication 认证:-------------------------------------是完全基于 cookies 的 只不过是把 cookies 相关的功能封装好做在一起,比如,对 cookies 加密,当失去 cookies 时,自动跳转 到login.aspx 然后,回跳原来的页等等功能。-----------------------------------这跟 我完全使用 cookies 是不是没什么区别,在使用传统的 cookies ,把以上功能都自己手动加上,是不是完全一样,但是如果我自己使用 cookies 的话,会更灵活。是不是这样呢?
      

  7.   

    问题是,你用自己的cookie,你就要写很多编码,如果采用ASP.NET提供的设施,你要写的编码就很少,而且这些玩意跟ASP.NET提供的声明式授权方式是集合在一起的