郝晶's profileHigh SoftWarePhotosBlogLists Tools Help

Blog


    01 June

    女人应该偷偷知道的十件事情

    女人应该偷偷知道的十件事情 
    1:爱人就是爱人,只能去爱,不要拿来比较,不要老说别人的老公如何如何的好,别数落他没出息,你是他最亲密的人,对大多数男人来说,赞赏和鼓励比辱骂更能让他有奋斗的力量,何况,爱他还忍心伤害他吗?爱他一定要尊重他,再生气也不可以出口伤人,言语的伤口有时一生都在出血的。身体的伤害很容易治愈,而精神的伤害后果是可怕的; 

    2:不可以整天追问对方爱不爱你。他若真爱你,你不必问;他若不爱你,难道他会对你明确的承认吗?他对你的爱,用心去体会就品味出来了。老挂在口头上不落实到实际的爱太苍白无力,婚姻是现实的,生活是现实的,风花雪月的恋爱,不是真正的生活,婚姻是从柴米油盐中感受爱的; 
    3:不要摆脸色给对方看,一个生气的女人是很丑陋的,(他工作上已经有许多的压力,没有义务回家还要看你的脸色哄你开心)对方性格上会有缺点,生活细节会与你不同,令你不满意,但人怎么可能是完美的。在你面前,他要放下面具,做回自己,做个普通人。宽容是做人很和对待婚姻应有的态度; 

    4:男人对自己的尊严看的比什么都重要,不管在私下他有多么的宠爱你,多么怕你,在人前一定要给足面子,让他做天不怕地不怕老婆更不怕的,他口中的顶天立地的男子汉,他应该不大会喜欢朋友们开玩笑说他怕老婆,除非他有足够的强大的后盾和高高在上的身份,可是,我们大都是普通人呀; 

    5:男人大都喜欢吹牛,你别戳破他的这点小把戏,他们这样可以让自己得到一点力量,找到一点自信,好继续人生征程下面的拼搏。虚拟的成就感能让他心情明朗起来不好吗? 6:男人骨子里全喜欢美女,看到美女会目不转睛或回头行注目礼,你别认为他不爱你,也别认为他好色,爱看美女是男人的本能,与品格无关。何况,爱美之心人皆有之; 

    7:不要太虚荣,不要太功利,物质的追求是无止境的,你是活自己,不是活给别人看的,鞋子合不合脚只有自己知道,舒服最重要,其他的都是装饰,是虚设; 

    8:男人为何喜欢温柔的女人,因为他们的内心很脆弱,不像外表般坚强,他们需要妻子的柔情似水,柔声细雨,轻怜蜜爱。只要你有温雅如兰的气质和外表,有吐气如兰的声音,有含情脉脉的眼波,他们很容易化百炼钢为绕指柔的; 9:家庭永远是第一,我们固然要对工作负责,要有职业道德,要从工作中得到乐趣,但不是做工作的奴隶,我们工作是为了更快乐的和家人在一起,享受生活,享受生命很重要; 

    10:爱人的父母就是自己的父母,将心比心,爱屋及乌
    29 December

    亲爱的小猪猪,爸爸想死你了

    亲爱的小猪猪,爸爸想死你了.明天爸爸就回家看你去,这么长时间没有看见你了好想你.爸爸给你买了新的奶嘴,你今后吃饭就痛快啦!多吃点儿快快长大,爸爸带你去玩儿!
    17 December

    我亲爱的小猪宝宝!

    爸爸在想你.你有没有吃饱啊?睡的好不好?是不是你很调皮把妈妈累坏了?不过没有关系,爸爸妈妈很爱你,只要你健康的成长我们就很开心了.
    昨天晚上爸爸通过网络看家你长胖了,真可爱!
    13 November

    和小猪宝宝说说话

    亲爱的小猪宝宝,宝宝给你买了一个相机,要给你小的时候留下更清晰\美好的回忆.听妈妈说你很聪明,很淘气.我爱你,宝贝!

    我的宝宝天使

    亲爱的宝宝,爸爸很想你!你现在睡觉了吗?还是在和妈妈玩?你就要满月了,爸爸送你点儿什么呢?小可爱,爸爸妈妈把自己所有的爱放在了你的身上.你真是我们的天使!
    IMG_1719IMG_1720IMG_1738IMG_1742
    29 May

    米兰!我的王者!

    多年的挚爱!米兰!
    2年前我的心被你高高地举起狠狠的摔下,碎了.我拾起破碎的心,依然爱着你!无怨无悔.我对你一直充满着无比的期待!
    今天,我忘记了兴奋!因为我知道,3:0曼联意味着你已经拿到了早就因该拿到的冠军.livepool只不过是一些码头上扛包的工人罢了!对待他们要毫不留情,干净利索的出手!
    有仇必报,老天眷顾米兰,很短的时间内就给了我们报仇雪恨的机会。码头工人现了原形,只不过是扛包的罢了!
     
     
    空有一身蛮力是不行的!
     
     
    米兰真正的国王和王子
     
    码头工人跪下仰望的时候
    王者跳着舞步秒杀扛包贼
    08 November

    你的前方是什么?

    在没有看见你昨日的雄姿,今天你怎么了?没有了往昔的细腻、犀利、牢不可破。我的命运总是和你联系在一起,你的辉煌就是我的成就,你的低谷就是我的歹运。我的米兰啊,今天的我依然热爱着你,你就像那只在我心中永远绽放的玫瑰。今天你怎么了?我的心情、事业、家庭都和你紧紧地联系了在一起,米兰!我最最深爱的米兰!
    18 October

    看见你蹒跚的步伐……

    今天早上看到你昨夜蹒跚前进的步伐我好心疼!
    为什么你的枪还没有找到?
    无言……
    17 October

    我看三国

    前些日子在书摊上划5块钱买了一本易中天的品三国。
    如获至宝。
    通宵诵读。
    读了三遍。
    发现许多观点与鄙人不谋而合,有一种“唯晶与中天而”的感觉。
    不过有发现更多的观点和我只观点相差甚远,不由得感觉此人有问题。
    此人大书特书曹操,仿佛三国唯曹操一人的舞台。
     
    三国中我最不看好的就是曹贼!
     
    曹贼手握雄兵、文官武将不计其数,怎么就灭不了一个小小的刘皇叔呢?怎么就不能让左右徘徊的东吴俯首称诚呢?
    自己窃取了东汉的大半壁江山,闹到最后,还不是被人都弄走了?
     
    (待续)
    16 October

    选择题还是填空题

    人生一直就在做题。有的时候是选择题有的时候就是填空题。
    你喜欢哪一样呢?
    当你看不到选项的时候,就是填空题,需要你的创意灵感、说的难听点就是你要硬着头皮上而不知道你的答案着不着边。
    当你看见了答案,恭喜你,你做的是选择题。
    两个女人你可以轻易的选择一个或者多选。总比你想破头皮都找不到的填空题好得多。
    最难的就是选择加填空了。可以选择也可以创意。你会怎么办?
     
    人的一生你想做填空的时候往往有选择题等着你。你想选择一下的时候一般就是一道填空题或选择填空题摆在眼前。
     
    向左走、向右走?其实很简单不过是二选一罢了!你站在沙漠里你就会问我该往哪里走?
     

    你的枪呢?

         你走了,看了你7年的背影,如今再也看不见了,这就是永别!20多岁的我体验了太多的永别,这次你和你的前辈巴斯滕一样给了我深深地伤痕!巴斯滕无奈的离去我充满了无尽的遗憾,你的离去我缺久久不能理解。
         回来吧,回到成就你的米兰!
         那里不是你的天堂,那里不是展现你轻盈的脚步的地方。米兰有你最忠实的拥趸,你最真诚的战友!这次你错了。
         米兰放走了你,米兰错了!米兰你现在的枪呢?
    21 June

    c#如何实现无标题栏窗口程序的移动?

    首先在窗口中加下面代码:

    private const int WM_NCHITTEST = 0x84;

      private const int HTCLIENT = 0x1;

      private const int HTCAPTION = 0x2;

    然后加上下面事件:

    protected override void WndProc(ref Message m)

      {

       switch(m.Msg)

       {

        case WM_NCHITTEST:

         base.WndProc(ref m);

         if ((int)m.Result == HTCLIENT)

          m.Result = (IntPtr)HTCAPTION;

         return;

         break;

       }

       base.WndProc(ref m);

      }

    27 May

    原来!!!

    早就有预感也有心理准备,但是事情突然间来到的时候还是受到了很大的打击。他走了,再也看不见他矫健的身影,不知道以后看见穿蓝色衣服的他会是什么样的心情!我接受不了这个事实!现在还没有能够代替他,我一直以为米兰能够留下他!但是……
    事情就是这样子的,无奈但是,不知道今后的米兰怎么样呢?
    19 May

    喜忧参半

          去年弄了一个双亚王!害得我打晚上起来看了好几场球,当然有赢的爽的!也有输的爽的。那场几十年有都会被人提起的球 3:3 。
          今年输给巴萨我觉得比去年输给利物浦强多了!虽然输得不明不白,但是并不窝囊。联赛还是输给了自己,在弱队上丢分太多了。
          我讨厌了10几年的那个油蚊图死终于要完蛋了!爽!太爽了!这就叫:吃了我的给我吐出来,喝了我的给我倒出来!SB 油蚊图死 这就叫做自作自受!活该!Da SB!!
    17 May

    新婚再感言

    这才是我自己的婚礼。人不多但是都是我身边的朋友!我很开心!
    10 May

    新婚感言

    结婚好象听起来不错!累就不说了,欠了一大笔人情怎么还呢?还不如让我欠上一大笔钱呢!
    100桌听起来好像真的不错,气派!从生下来还没有听说过家里有谁摆过100桌酒席呢。
    真真属于我的又有多少呢?2桌而已!
    我是在为谁摆婚宴呢?我成了没有人认识的新郎官,似乎没有人认识我在意我,我变成了配角的配角。就连所有的祝福也冠以:***先生公子、**公令郎 …… ……
    也许我真的生活在一种阴影下,所以才这样的挣扎摆脱寻找自我。这是我的幸福,也是我的悲哀!也许我走不出阴影,但是我也会让我的后辈生活在我的阴影中!
    还是那句话,如果20几年后再摆100桌我宁可都是我不认识的而是我儿之朋友。那是我之幸福,天大之幸福!
    12 April

    他们说人生一场梦又何必太认真

    他们说人生一场梦又何必太认真,青春正年少我应该大声笑!

    岁月如飞催人老

    岁月如飞。刀他刀刀催人老!
    10 March

    安全的ADO.NET编码

       MSDN Home >  .NET Framework >  使用 .NET Framework 编程 >  通过 ADO.NET 访问数据 >  编写安全的 ADO.NET 代码
    .NET Framework 开发员指南  

    安全的 ADO.NET 编码指南

    保证应用程序的安全包括编写安全的代码。代码必须只公开客户端代码所需要的信息和功能。与 ADO.NET 相关的常见攻击是 SQL Insertion 攻击,它从应用程序返回的异常中来确定私有数据库信息。

    避免 SQL Insertion 攻击

    在 SQL Insertion 攻击中,攻击者在您的命令中插入在数据源位置执行处理的其他 SQL 语句。这些命令不仅可以修改或破坏数据源位置的信息,还可以检索您的私有信息。将命令字符串与外部输入串联在一起的代码容易受到 SQL Insertion 攻击。例如,以下代码容易受到 SQL Insertion 攻击。

    [Visual Basic]
    ' Retrieve CustomerID to search for from external source.
    Dim custID As String = GetCustomerID()
    
    ' The following line of code allows for SQL Insertion attack.
    Dim selectString As String = "SELECT * FROM Customers WHERE CustomerID = " & custID
    
    Dim cmd As SqlCommand = New SqlCommand(selectString, conn)
    conn.Open()
    Dim myReader As SqlDataReader = cmd.ExecuteReader()
    ' Process results.
    myReader.Close()
    conn.Close()
    [C#]
    // Retrieve CustomerID to search for from external source.
    string custID = GetCustomerID();
    
    // The following line of code allows for SQL Insertion attack.
    string selectString = "SELECT * FROM Customers WHERE CustomerID = " + custID;
    
    SqlCommand cmd = new SqlCommand(selectString, conn);
    conn.Open();
    SqlDataReader myReader = cmd.ExecuteReader();
    ' Process results.
    myReader.Close();
    conn.Close();

    攻击者可为要查询的 CustomerID 输入一个值“1;DROP TABLE Customers”。这会导致为此查询执行以下命令。

    SELECT * FROM Customers WHERE CustomerID = 1;DROP TABLE Customers

    为了防止 SQL Insertion 攻击,请验证来自外部源的输入,并传递列值作为参数,而不是串联这些值来创建 SQL 语句。

    验证输入

    可以使用正则表达式验证输入与特定的格式是否匹配。.NET Framework 提供了 Regex 对象,以根据正则表达式来验证值。例如,以下代码用于确保值为 5 个字符的字母字符串。

    [Visual Basic]
    Public Static Function Validate(inString As String) As Boolean
      Dim r As Regex = New Regex("^[A-Za-z0-9]{5}$")
      Return r.IsMatch(inString)
    End Function
    [C#]
    public static bool Validate(string inString)
    {
      Regex r = new Regex("^[A-Za-z0-9]{5}$");
      return r.IsMatch(inString)
    }

    使用参数

    参数提供了一种有效的方法来组织随 SQL 语句传递的值,以及向存储过程传递的值。另外,通过确保从外部源接收的值仅作为值传递,而不是作为 SQL 语句的一部分传递,可以防止参数受到 SQL Insertion 攻击。因此,在数据源处不会执行插入到值中的 SQL 命令。相反,所传递的这些值仅仅被视为参数值。以下代码显示了使用参数传递值的一个示例。

    [Visual Basic]
    ' Retrieve CustomerID to search for from external source.
    Dim custID As String = GetCustomerID()
    
    Dim selectString As String = "SELECT * FROM Customers WHERE CustomerID = @CustomerID"
    
    Dim cmd As SqlCommand = New SqlCommand(selectString, conn)
    cmd.Parameters.Add("@CustomerID", SqlDbType.VarChar, 5).Value = custID
    
    conn.Open()
    Dim myReader As SqlDataReader = cmd.ExecuteReader()
    ' Process results.
    myReader.Close()
    conn.Close()
    [C#]
    // Retrieve CustomerID to search for from external source.
    string custID = GetCustomerID();
    
    string selectString = "SELECT * FROM Customers WHERE CustomerID = @CustomerID";
    
    SqlCommand cmd = new SqlCommand(selectString, conn);
    cmd.Parameters.Add("@CustomerID", SqlDbType.VarChar, 5).Value = custID;
    
    conn.Open();
    SqlDataReader myReader = cmd.ExecuteReader();
    ' Process results.
    myReader.Close();
    conn.Close();

    保持异常信息的私有性

    攻击者经常利用来自某次异常的信息,例如服务器、数据库或表的名称来发起对系统的特定攻击。因为异常可能会包含关于应用程序或数据源的特定信息,所以,如果您只向客户端公开所需要的信息,则可使应用程序和数据源更为安全。

    为了避免通过异常公开私有信息,请不要将系统异常的内容返回用户。相反,要在内部处理异常。如果必须向用户发送消息,则返回您包含最少信息的自定义消息(例如“连接失败。请与系统管理员联系。”),并记录特定信息以便于管理员使用。

    例如,以下代码捕获打开连接时的异常,并将异常写入事件日志。

    [Visual Basic]
    Dim conn As SqlConnection = New SqlConnection("Data Source=localhost;Initial Catalog=Northwind;")
    
    Try
      conn.Open()
    
    Catch e As SqlException
      Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
      log.Source = "My Application"
      log.WriteEntry(e.ToString())
    
      If conn.State <> ConnectionState.Open Then _
        Console.WriteLine("Connection was not opened.")
    
    Finally
      conn.Close()
    End Try
    [C#]
    SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;");
    
    try
    {
      conn.Open();
    }
    catch (SqlException e)
    {
      System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
      log.Source = "My Application";
      log.WriteEntry(e.ToString());
    
      if (conn.State != ConnectionState.Open)
        Console.WriteLine("Connection was not opened.");
    }
    finally
    {
      conn.Close();
    }

    请参见

    编写安全的 ADO.NET 代码


    ©2006 Microsoft Corporation. 版权所有.  保留所有权利 |商标 |隐私权声明
    Microsoft
    30 September

    老笑话

    有一架飞机上面坐有一美国人一个德国人一个日本人和一个中国人.
    飞机飞到一半突然没油了,机长宣布必须有一人跳机以减轻重量.
    于是那美国人就发挥其个人英雄主义精神走到飞机舱口高呼一声:"美利坚和众国万岁!!"然后就跳下去了!
    飞机继续飞.....
    这时机长又宣布:重量还是太重了,还得跳下去一个人!
    于是德国人就站出来,走到飞机舱口,高呼一声:"德意志帝国万岁!!"也跟着跳了下去!
    飞机继续飞.....
    这时机长又宣布说:不行,还是重了,必须再跳下去一个人!
    中国人看了日本人一眼,站起来走到了飞机舱口,
    日本人赶紧走过来紧紧握住中国人的手:"好兄弟,我不会忘了你的!"
    中国人高呼一声:"中华人民共和国万岁!!"
    接着一脚把日本人给踹下去了!!....