如何实现某一目录的forms身份验证

添加人:admin四级(1689分)   添加时间:2007-06-24    阅读次数:928  收藏此教程

前段时间在学习后台登录验证的问题,听说forms身份验证要比较的方便,于是研究了一番,结果发现网上的资料都不全(或者不适合初学者),出了好多的问题,现在我把我的代码公布出来,希望能给大家一些帮助.
我的后台文件全部放在admin目录下,后台的登录口为admin_login.aspx,现在要实现的功能是:
不能直接访问admin目录下除了admin_login.aspx(即登录口)文件以外的文件,但是前台的文件,比如default.aspx等,要不受forms验证的影响,也就是说,即使没有登录,访问default.aspx时,也不能转到admin_login.aspx.

下面说一下实现过程:
在web.config文件中,设为forms身份验证:

< authentication mode="Forms">   
    <forms name=".LoginUser" loginUrl="admin/admin_login.aspx" protection="All" timeout="30" />   
</authentication>
<authorization>               
    <allow users="*" />       
</authorization>

然后在</system.web>后还要加入:
< location path="admin">
    <system.web>
        <authorization>
            <deny users="?" />
            <allow users="*" />
        </authorization>
    </system.web>
</location>

否则无论访问哪个文件,都会转到登录口的,加了上面这段代码后,就只有访问admin目录下的文件时可能转到admin_login.aspx,以上就是web.config文件中的设置,接下来就是后台登录按钮的代码了:
//检查登录的用户名和密码是否正确,我用的是从数据库中检查的方法,你可以用其它方法,这里就不说了.
if (OpenData.CheckUser(strSql,"ToEmpire_UserInfo"))
{
    //保存登录的用户名
    Session["LoginUser"] = strLoginUser;

    //这一句就是关键,strLoginUser为登录框中的用户名.false为不永久记录.
    FormsAuthentication.RedirectFromLoginPage(strLoginUser,false);

    Response.Redirect("admin_index.aspx");
}

1页 第1上一页1下一页
相关的教程: Forms 身份验证
收藏此教程

当前平均分: 0.0(0 次打分)

-5-4-3-2-1012345
评论主题
您的大名
您的评论
验证码 点击换一个验证码
知识库搜索: