zoukankan      html  css  js  c++  java
  • 实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”

    想实现“记录用户登录时间和退出时间,同时记录用户IP,并且要记录用户IP对应的省和城市地址”


    用Session_Start和Session_End,实现是最初的想法,结果不理想。


    主要是时间不准确,不能将TimeOut时间设得太短了。


    关键过程:


    新建一aspx页面-spyWin.aspx


    代码
     protected void Page_Load(object sender, EventArgs e)
        {
            
            Common.LogOut();

            
    string script = "<script type='text/javascript' " +
                    
    "language='javascript'> " +
                    
    " function check_opener() { " +

                    
    " parent.opener=''; " +
                    
    " parent.close(); " +

                    
    "" +
                    
    " onload = function() { " +
                    
    " self.blur(); " +
                    
    " setTimeout('check_opener()',0); " +
                    
    " } " +
                    
    " </script>";
            
    this.Controls.Add(new LiteralControl(script));

        }

    //以上是spyWin.aspx的代码

    //以下是Common类的代码
     public static void LogLogin(string address)
        {
            
            MyBusiness.DbModel.LogForSale lfs 
    = new LogForSale();
            lfs.LoginTime 
    = DateTime.Now;
            lfs.UserName 
    = Credential.Name;

            
    if (address.Length > 1)
            {
             lfs.IP
    =   address.Split(',')[0];
             lfs.Province 
    = address.Split(',')[2];
             lfs.City 
    = address.Split(',')[3];
            }
            
            
            lfs.Save();

            System.Web.HttpContext.Current.Session[
    "LFS"= lfs;
        }
        
        
        
    public static void LogOut()
        {
            
    if (Credential != null)
            {
                MyBusiness.DbModel.LogForSale lfs 
    = System.Web.HttpContext.Current.Session["LFS"as MyBusiness.DbModel.LogForSale;
                
    if (lfs!=null&&lfs.ID > 0)
                {
                    lfs.LogoutTime 
    = DateTime.Now;
                    lfs.Save();
                }
            }
        }

    完成上述关键(非全部) 步骤后,在真正的网站母版页里加上

    代码
        <script language="javascript">
    function launch_spyWin() 
    {
        spyWin 
    = open('spyWin.aspx','spyWin',
           
    'width=100,height=100,left=2000,top=0,status=0');
        spyWin.blur();
    }
    onunload 
    = launch_spyWin;



        
    </script>

    为了记录登录时间等,需要在登录的事件里添加

     Common.LogLogin(TextBoxLog.Text); 

     登录页面加上:

    代码
        <asp:TextBox runat="server" ID="TextBoxLog" CssClass="TextBoxLog Element-Hide"></asp:TextBox>
        
    </form>
    </body>
    <%--//2010-4-8 LogForSale 起--%>

    <script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"></script>

    <script type="text/javascript"> 
     
    $(
    '.TextBoxLog').val((IPData.join(',')));

    </script>

    http://anforen.5d6d.com/

    http://four-corner.appspot.com/


  • 相关阅读:
    (转载)delphi checklistbox用法
    (转载)c++builder/delphi中透明panel及透明窗口的实现方法_delphi教程
    (转载)图片的漫游
    (转载)SQL中导入图片
    (转载)使用ADOConnet.BeginTrans后,出现错误提示:无法在此会话中启动更多的事务?
    (转载)delphi 中如何调用sql 存储过程
    C# 读取注册表获取本机的全部的typelib信息
    EXCEL 引用autocad vba,自动加载其类型库
    AutoCAD2013 以上利用AccoreConsole+ c# NetApi Windows Froms 封装
    Aveva Marine 新建项目001
  • 原文地址:https://www.cnblogs.com/meta/p/1707453.html
Copyright © 2011-2022 走看看