最近在做一个项目时遇到了一个问题..在做身份授权验证时 想用Form验证来验证两个授权...分别是后台管理员授权和前台会员授权...但是在配置时才发现这样会报错... 在根目录的web.config
<authentication mode="Forms">
<forms loginUrl="/login/login.aspx" name=".ASPXFORMSAUTH"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
在 admin 下的web.config
<authentication mode="Forms">
<forms loginUrl="/admin/login.aspx" name=".ASPXFORADMIN"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
这样会报错...哪位高手有解决的方法啊.. 其实就是要实现一个form验证 实现登陆到两个不同的登陆页面 去授权...如果有其他的解决办法期待你们提出来...在线等...大家在做授权的时候是怎么做的 请给出具体办法!!!
<authentication mode="Forms">
<forms loginUrl="/login/login.aspx" name=".ASPXFORMSAUTH"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
在 admin 下的web.config
<authentication mode="Forms">
<forms loginUrl="/admin/login.aspx" name=".ASPXFORADMIN"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
这样会报错...哪位高手有解决的方法啊.. 其实就是要实现一个form验证 实现登陆到两个不同的登陆页面 去授权...如果有其他的解决办法期待你们提出来...在线等...大家在做授权的时候是怎么做的 请给出具体办法!!!
用角色验证。。配置webconfig文件即可
首先设计好网站的用户的角色共有多少种,能进行的操作是什么,也就是把各个模块分配到不同的角色中。。
如超级管理员,系统管理员,资料更新员,新闻管理员等等,然后配置webconfig文件里的目录即可
至于用户权限的管理,数据库中为用户加个roles字段。登录时加入即可。。
不过这样设计时要考虑的一个重点问题是,一个页面最好是一个独立的功能模块,不与角色验证相关,而通过webconfig来配置
谢谢你认真的回答...
角色已经搞定了... 现在主要问题是 登陆! 一个是管理员登陆,前台还有会员登陆...
我想用一个form搞定... 怎么给他们分别授权!???
我好久没做asp.net了
试试吧
if (Roles.IsUserInRole("admin"))
{
Response.Redirect("~/admin/login.aspx");
}
{
if (Request["ReturnUrl"] != null && Request["ReturnUrl"].Contains("/admin/"))
Server.Transfer("~/admin/login.aspx");
}
这样如果访问的是admin目录下的页面,都会转到admin目录下的login去登陆。如果前台会员和后台管理员的权限是完全独立的,就是说不管前台会员是否已经登陆,进入后台管理时都需要再次登陆,则可以考虑分别用两种机制实现权限管理,比如前台会员用session方式保存用户登录信息,后台用forms验证。此外还可以考虑把admin分开做成子项目(如果你的虚拟主机允许配置两个web应用的话)
在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。这个错...
不会项目整个文件都要动吧
是覆盖...但是貌似这个<authentication mode="Forms"> 节点只能有一个...我是在<system.web>里配置的
里边可以新建角色,可以向角色里添加用户,每个角色都可以设置不同的目录访问权限(可以是多种组合),每个用户也可能属于不同的几种权限,然后严正时,判断rolse.isinrole()就可以了,可以取identity进行比较
authentication 节只能在网站的根目录下的web.config中应用
不能在下面的子目录,譬如你的admin下配置,这是不允许的,否则会报错.但<authorization>可以在子目录下配置.
<location path="admin" ><!-- 访问的资源路径 -->
<system.web>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN"/>
<authorization>
<deny users="?"/>
<allow roles="A"/></authorization>
</system.web>
</location>
<!-- 权限设置 B用户 登录后 可访问的资源 -->
<location path="user" ><!-- 访问的资源路径 -->
<system.web>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN"/>
<authorization>
<deny users="?"/>
<allow roles="B"/></authorization>
</system.web>
</location>