您的位置:首页 > 其它

输入非登录页面,转到登录页面,阻止用户不登录而访问其他页面【原创】

2007-02-05 12:04 316 查看
如果您有任何意见,请留下您宝贵的意见以便告知
操作环境:Visual Studio.Net2003
操作系统:window Xp SP2


具体代码如下:

1。修改Web.Config:Visual Studio.Net2003 默认的是window身份的验证,首先将它修改为Form表单验证,删除原有的代码


<authorization>


        <allow users="*"/> <!-- 允许所有用户 -->


            <!--  <allow     users="[逗号分隔的用户列表]"


                             roles="[逗号分隔的角色列表]"/>


                  <deny      users="[逗号分隔的用户列表]"


                             roles="[逗号分隔的角色列表]"/>


            -->


 </authorization>

和代码:


 <authentication mode="Windows"/> 

然后在<system.web>节点中加上


<authentication   mode="Forms">     


            <forms   name=".aaa" protection="All" path="/" timeout="30"  loginUrl="/Login.aspx"/>   


</authentication>   


<!--     授权此节设置应用程序的授权策略。可以允许或拒绝用户或角色访问   


                应用程序资源。通配符:"*"   表示任何人,"?"   表示匿名     


                (未授权的)用户。   


-->   


<authorization>   


        <deny   users="?"/>


</authorization>

有关参数,可以参见MSDN, "loginUrl"就是导航的页面,做到这步,你会发现,首次运行的时候您会发现没有任何的问题,注销用户返回登录页面的时候,再次在地址栏中输入其他的页面,又可以访问,这是问题的关键之处,这就需要你对登录进行操作了,在对用户名进行判断的时候加上一句代码
FormsAuthentication.RedirectFromLoginPage(this.txtName.Text.ToString(),true);
这句代码就是判断时候用Form表单验证的方法,从而调用Web.Config里面的配置,使页面重定向,还有,在注销的时候,或者用户离开的时候加上以下代码:
FormsAuthentication.SignOut();//移除用户的身份,这样就可以实现用户步登录始终停留在登录页面,登录后可以浏览其他网页,注销后又返回未登录状态 FormsAuthentication 在命名空间using System.Web.Security;下.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐