请问在ASP.NET里面,怎么样阻止用户在地址拦里面输入地址直接进入系统?我在每个页面都做了判断,if(Session[""]==null)
                        {
                           Response.Redirct("Loging.aspx");
                         }在第一次进入登陆页面里,如果用户直接在地址拦打路径的话,第一次用户还是不能进入系统,
如果我用正确的用户进入之后,我点击退出系统按钮,同时Session[""]==null了,连接到登陆页面。然后再打地址拦的路径,结果用户就进入了~~所以这个问题就来了。谢谢各位~

解决方案 »

  1.   

    这个问题我也试很久了,用web.config来配置也是不行,不过用Session[]来配置,页面多了也不好处理啊。学习一下~~
      

  2.   

    一在退出时清空session,二在每个页面引用个js,如果user直接关闭IE的话,则向server发出清空session的请求~
      

  3.   

    清空SESSION是不行的,这个我早就试过了~~谢谢各位~~~~~~~~~
      

  4.   

    使用具体的SESSION内容,
    比如说,if (SESSION["USERNAME"]=="TEST")
    退出后Session["username"]=""
      

  5.   

    关闭窗口不行,因为需求不能退出窗口,清空SESSION也不行,我早就试过了~~~~~~~
      

  6.   

    换成forms验证啊,不会有这样的问题
      

  7.   

    我已经说得很清楚了,不能关掉IE,因为需求不能这样~
    FORM验证?没搞过,能不能说得具体一点?
      

  8.   

    或者这样
    第一步、在<head></head>间加入
    <script language="javascript">
    function loginout(){
    var gt = unescape('%3e');
    var popup = null;
    var over = "Launch Pop-up Navigator";
    popup = window.open('', 'popupnav',
    'width=225,height=235,resizable=1,scrollbars=auto');
    if (popup != null) {
    if (popup.opener == null) {
    popup.opener = self;
    }
    popup.location.href = 'loginout.asp';
    }
    }
    </script>
    第二步、<body>改为<body  onUnload="loginout()">
    第三步:在loginout.asp中加入如下代码(注意两个文件要在同一目录下)
    <%session.abandon%>
    <script language="javascript">function closeit() {
    setTimeout("self.close()",10000)
    }</script>
      

  9.   

    我的是用的ASP。NET,,在.cs中能加入<%session.abandon%>
    <script language="javascript">function closeit() {
    setTimeout("self.close()",10000)
    }
    这些吗?
      

  10.   

    这样也可以把,先清除数组
    SESSION=array();
    session_destroy();
      

  11.   

    这个我也试过了,只要是清除SESSION就不行,可能要用到COOKIES,请问有用过吗?
      

  12.   

    qiongl(路人甲)说的有一定道理,应该使用具体的SESSION名
    清空Session还是有效的,我用的是vb.net
    写成If Session("TEST")="" Then Response.Redirect("xxx")这样的格式,没有问题
      

  13.   

    这个格式有问题,。不信你也试一下。
    第一次没有正确输入用户名之前还是可以的,但是你正确登陆一次后。你清空SESSION,
    再在登陆页面的地址拦直接打刚刚那个的路径,绝对进得去~~
      

  14.   

    <authentication mode="Forms">
                <forms name=".MISAUTH" protection="All" timeout="60"  loginUrl="logon.aspx" />
         </authentication>在web.config里写上面的代码,试试可行?
      

  15.   

    这样呢!
    开始:
    session("admin")=""
    登陆后:
    session("admin")="yes"
    退出按钮(改变session的值)
    session("admin")="no"
      

  16.   

    我用Cookie也存在这个问题!
    又不能把页面关闭
      

  17.   

    看看你的session是否清空了
    在aspx页面加上这三句试试
    <meta http-equiv="Pragme" content="no-cache">
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Expires" content="0">
      

  18.   

    呵呵~~非常谢谢~你~~ limiao2551(Jason) 谢谢你的帮助~~~
      

  19.   

    请问有知道如何在C#中调用winpcap抓包的吗