有一站点:
有一个后台管理(所有后台文件都放在名称为TestAdmin的文件夹中),需要登陆才可以进入后台管理。 站点前台有一个会员系统,几个页面需要会员登陆后才可以使用。当然 会员跟 后台管理员是互不相干的。怎么配置web.config呢?<authentication mode="Forms">
<forms name="TestAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
</authentication> <location path="TestAdmin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location> <location path="ChangePassword.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
.
.
.这样子设置:
问题1:如果前台登陆了,那么就可以进入后台了问题2:如果没有登陆时打开ChangePassword.aspx 就会转到 TestAdmin/index.aspx
而不是 login.aspx
有一个后台管理(所有后台文件都放在名称为TestAdmin的文件夹中),需要登陆才可以进入后台管理。 站点前台有一个会员系统,几个页面需要会员登陆后才可以使用。当然 会员跟 后台管理员是互不相干的。怎么配置web.config呢?<authentication mode="Forms">
<forms name="TestAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
</authentication> <location path="TestAdmin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location> <location path="ChangePassword.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
.
.
.这样子设置:
问题1:如果前台登陆了,那么就可以进入后台了问题2:如果没有登陆时打开ChangePassword.aspx 就会转到 TestAdmin/index.aspx
而不是 login.aspx
<forms name="TestAuth" protection="All" timeout="60" loginUrl="TestAdmin/login.aspx" />
</authentication><authorization>
<allow users="*" />
</authorization><location path="TestAdmin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>上面功能是实现:在未登录时访问TestAdmin目录下的文件都转到login.aspx页面。
那个前台会员系统就以此类推
在每个页面中判断该session是否有权限访问该页面.
<forms name="yourAuthCookie" loginUrl="login.aspx"
protection="All" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization> 但是这样会产生一个问题,那就是如果站点有一些信息是可以让任意用户随意访问的,比如站点简介,使用说明等。如果按照上面的处理方法岂不让用户觉得很麻烦,在ASP.NET中有相应的解决办法。下面的代码可以实现匿名用户访问Test.aspx页面:<location path="test.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
web.config是面向目录的的.
TestAdmin目录下单独放个web.Config.
其它的前台的用户登陆也放在单独目录下.设置单独的web.config
另一个办法
web.config是面向目录的的.
TestAdmin目录下单独放个web.Config.
其它的前台的用户登陆也放在单独目录下.设置单独的web.config
我试了这样在TestAdmin目录的web.config加了
<authentication mode="Forms">
<forms name="TestAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
</authentication>
根目录加了
<authentication mode="Forms">
<forms name="TestAuth" protection="All" timeout="60" loginUrl="index.aspx" />
</authentication>报错了
--------------------------------------------------------------------------------配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。导致该错误的原因可能是在 IIS 中没有将虚拟目录作为应用程序进行配置。源错误:
行 3: <system.web>
行 4:
行 5: <authentication mode="Forms">
行 6: <forms name="XYDAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
行 7: </authentication>
<configuration>
<system.web> <authentication mode="Forms">
<forms name="XYDAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
</authentication>
</system.web></configuration>
其它的不要
如
allowDefinition='MachineToApplication' 等等
只要
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web> <authentication mode="Forms">
<forms name="XYDAuth" protection="All" timeout="60" loginUrl="TestAdmin/index.aspx" />
</authentication>
</system.web></configuration>===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码
<forms name="TestAuth" protection="All" timeout="60" loginUrl="TestAdmin/login.aspx" />
</authentication><authorization>
<allow users="*" />
</authorization><location path="TestAdmin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>上面功能是实现:在未登录时访问TestAdmin目录下的文件都转到login.aspx页面。
那个前台会员系统就以此类推
-------------------------------------
上面的绝对可以啊,我自己目前的就是这样
是前台的。
http://community.csdn.net/Expert/TopicView.asp?id=4079365
if(Page.User.IsInRole("Admin") == false)
{
Server.Transfer("index.aspx");
}
居然没有想到在web.config设置基于角色的验证
<location path="TestAdmin">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*" />
</authorization>
</system.web>
</location>现在还是这个问题:如果没有登陆时打开ChangePassword.aspx 就会转到 TestAdmin/index.aspx
而不是 login.aspx
,按照你发的贴,那位老兄是在首页放一个login.aspx,然后根据ReturnRrl转到相应的登陆页面,
但是我想通过配制web.config应该可以达到目的的