由于菜单都放在数据库中,∴暂时采用判断页面的地址 截取判断是否存在()


方法有如下几种
一:  采用session验证
判断session变量是否存在,如果存在,即表示用户已登录,否则未登录。

二: 采用Form验证
A:(例子一)
  Form验证可以指定一个登录页面,并禁止匿名用户登录,这样用户访问任何页面时,如果没有登录过,会自动转到登录页面,登录成功以后,也能跳到原来的页面。  
   
  步骤:  
  1、修改web.config文件,使其包含如下内容。  
  <system.web>  
              <authentication   mode="Forms">  
                  <forms   name=".ASPXUSERDEMO"   loginUrl="login.aspx"   protection="All"   timeout="60"   />  
              </authentication>  
              <authorization>  
                  <deny   users="?"   />  
              </authorization>  
  </system.web>  
  上面的配置信息的意思是采用Form验证,登录页面是login.aspx,登录后如果空闲60分钟,必须重新登录。禁止匿名用户使用系统(必须登录)。  
   
  2、编写login.aspx,提供必要的登录内容,并在登录按钮的事件代码中作如下处理。  
  //根据输入的用户名和密码,和数据库中的账户信息进行比较,代码略  
  if(ok)//如果成功  
  {  
          FormsAuthentication.SetAuthCookie(sUserName,false);  
          //如果是从其他页面自动调转到本页面,Request["ReturnUrl"]必然有  
          object   oUrlRet=Request["ReturnUrl"];  
          this.Response.Redirect(oUrlRet==null?"Default.aspx":oUrlRet.ToString());//如果一开始就进入login.aspx,成功以后,应该自动跳到某个页面,如default.aspx  
  }  
  else  
  {  
          //提示登录失败  
  }  
   
  3、在需要注销的时候,执行一下代码,比如在logout.aspx页面中。  
  FormsAuthentication.SignOut();//注销  
  Session.Abandon();//结束Session  
   
  注意引用System.Web.Security  

B:(例子二)
首先,登录页面(login.aspx)登录时  
  //   保存用户名,进入系统  
  FormsAuthentication.SetAuthCookie(txtUserID.Value,   false);  
  this.Response.Redirect("main.aspx",   true);  
  其他页面,  
  //判断用户是否登录,若没有,退出到登录界面  
  if(User.Identity.Name=="")  
  {  
  Page.RegisterStartupScript("Logout","<script   language=javascript>parent.location='login.aspx'</script>");  
  }   
 

posted on 2006-12-18 23:27  ipusr  阅读(227)  评论(0)    收藏  举报