日期:2014-05-19  浏览次数:20501 次

Forms认证后,如何判断是管理员还是会员?
我的项目如下:
站点
|_Admin(管理员目录)
|   |_Index.aspx
|
|_Member(会员目录)
|   |_Index.aspx
|
|_web.config
|_ToLogin.aspx
|_Admin_Login.aspx
|_Member_Login.aspx

根目录的web.config配置如下:
    <system.web>
        <authentication   mode= "Forms ">
            <forms   name= "nmg.cicea "   loginUrl= "ToLogin.aspx "   timeout= "30 ">
            </forms>
    </system.web>

    <location   path= "Admin ">
        <system.web>
            <authorization>
                <deny   users= "? "/>
            </authorization>
        </system.web>
    </location>

    <location   path= "Member ">
        <system.web>
            <authorization>
                <deny   users= "? "/>
            </authorization>
        </system.web>
    </location>

我希望管理员通过Admin_Login.aspx登陆后只能访问Admin目录,而会员通过Member_Login.aspx登陆后只能访问Member目录。

但我现在存在的问题是,不管是管理员还是会员登陆后,都同时能访问Admin和Member目录。应该怎么解决呢?请大侠帮帮忙!

------解决方案--------------------
在数据库里加一个字段来区别是会员还是管理员..
在程序里面加个SESSION.管理员页面只允许管理员..会员页面可以允许任何人

我介意最好将管理页面跟前台页面分开..管理员表与会员表区分开来..
页面的话也分2个登录页面..
不需要在WebConfg设置
------解决方案--------------------
?表示匿名用户,应该设置为禁止所有用户访问,但管理员可访问
<location path= "Admin ">
<system.web>
<authorization>
<allow users= "允许的用户列表 " 或 roles= "允许的脚色列表 " />
<deny users= "* "/>
</authorization>
</system.web>
</location>
------解决方案--------------------
楼上正解
<location path= "Admin ">
<system.web>
<authorization>
<deny users= "* "/>
</authorization>
</system.web>
</location>
除了管理员,拒绝其他所有用户。
------解决方案--------------------
<location path= "Admin ">
<system.web>
<authorization>
<allow roles = "admin "/>
<deny users= "* "/>
</authorization>
</system.web>
</location>

加一个用户角色字段,存入User.Data中在Application_Request中获取就可以了
网上有一些这样的例子,具体你可以查一查