• 实现“记录用户登录时间和退出时间,同时记录用户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/


  • 相关阅读:
    Golang 版本发布 与 TIOBE 排名
    Golang 处理 Json(二):解码
    Golang 处理 Json(一):编码
    Bootstrap datetimepicker “dp.change” 时间/日期 选择事件
    Golang Vendor 包机制 及 注意事项
    Golang Vendor 包管理工具 glide 使用教程
    .yaml 文件格式简介
    【Go命令教程】命令汇总
    【Go命令教程】14. go env
    【Go命令教程】13. go tool cgo
  • 原文地址:https://www.cnblogs.com/meta/p/1707453.html
Copyright © 2020-2023  润新知