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中获取就可以了
网上有一些这样的例子,具体你可以查一查