使用基本身份验证

幸运的是,验证用户只是一个非常常见的认为,因此HTTP内置有身份证验证功能。脚本或Web服务器可以通过Web浏览器请求身份验证。Web浏览器负责显示一个对话框或类似设备,从而从用户那里获得所需的信息。
      
       尽管Web服务器对每个用户请求都要求新的身份验证详细信息,但Web浏览器不必在每页中都要求用户输入详细信息。通常,浏览器可以保存这些详细信息,只要用户打开一个浏览器窗口,它就会自动地将这些所需的详细信息重新发送到Web服务器而无须用户介入。
       
        HTTP这个特性叫做基本身份验证。使用PHP或者内置于Web服务器中的机制,可以触发这些基本身份验证。接下来,我们将讨论PHP方法、Apache方法。
 
       基本身份验证以普通文本方式传输用户名和密码,因此不太安全。HTTP1.1中包含一种更安全的方法,称为摘要身份验证。摘要身份验证使用哈希算法(通常是MD5)掩饰事务处理的细节。摘要身份验证被许多Web服务器和大多数Web浏览器的最新版本所支持。然而,目前还有许多正在使用的浏览器早期版本不支持摘要身份验证,而且微软的某些IE和IIS版本所包含摘要验证标准的版本与非Microsoft产品并不兼容。
       
       除了对Web浏览器的支持较差之外,摘要身份验证也不很安全。基本身份验证和摘要身份验证都只能提供低级别的安全。它们都不能保证用户正在处理的机器就是他要访问的及其。它们都可能允许入侵者向服务器重复发送同一请求。因为基本身份验证以普通文本的方式传输用户密码,这就使入侵者能够捕获这些信息包,并冒充该用户发送任何其他的请求。
      
       基本身份验证提供的安全级别与人们常用的通过Telnet或FTP连接机器一样,都是以普通文本方式传输密码的。摘要身份验证更安全一些,在传输密码之前将对密码进行加密。
      
       当将SSL和数字证书结合起来实现基本的身份验证时,所有Web事务处理都可以得到全面的保护。但是对于许多情况来说,一个速度快但是相对不安全的方法却是合适的方法。例如,基本身份验证。
      
       基本身份验证只能保护特定的领域,并且要求用户提供有效用户名和密码。指定领域是因为同一服务器上可以有多个这样的领域。同一台服务器上的不同文件和目录可以成为不同领域的一部分,每个领域由一组不同的用户名和密码来保护。指定领域也允许将一台主机或一台虚拟主机上的多个目录指定为一个领域,并用一个密码来保护它们。

Session对象使用时应注意的事项

Session对象用于存储特定的用户会话所需的信息 ,从一个用户开始访问某个特定的主页起,到用户离开位置。服务器可以分送给这个用户一个Session,以存特定的用户信息。Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议。那么在使用Session对象时,我们要注意哪些事项吗?

       ASP.NET中的Session不需要Cookies的支持,也就是说,如果用户关闭了Cookies,Session的值一样也可以保存。在默认的情况下,ASP.NET中的Session还是需要Cookies的支持,但是通过一些设定,具体做法是:编辑区配置文件(machine.config或sessionState有关的设置区,将其cookieless属性值设置为Ture。

DataList中模版的使用

DataList控件用于显示绑定在空间上的数据源中的数据。那么在DataList控件中如何使用模板呢?

     (1)在Visual Studio.NET中创建一个新的解决方案,将其命名为DataLi-stExamples。

     (2)在解决方案中创建一个新的VisualC#类型的ASP.NET Web应用程序项目,输入如下HTTP路径并单击“确定”按钮:

       http://localhost/DataListApplications

使用FTP函数之检查文件更新时间

检查文件更新时间,是在命令行中手动使用FTP传输文件的第三个步骤。下面我们来具体了解一下这一步骤吧!文件时间是我们使用FTP函数而不是其他更简单的文件函数的原因。文件函数可以很容易读,而且在某些情况下,也可以通过网络接口写文件,但是大多数状态函数,如:filemtime()无法执行远程操作。这一点将在以后发生变化。

检查文件更新时间,是在命令行中手动使用FTP传输文件的第三个步骤。下面我们来具体了解一下这一步骤吧!

假设我们打算更新文件的新文件的本地副本,比较明智的做法是首先检查文件是否需要更新,因为如果文件是最新的,就无须重新下载此文件,特别是当它是一个很大的文件的时候。这将避免不必要的网络通信量。现在,让我们来查看实现检查文件更新时间的代码。

日历函数的使用

PHP提供了一组日历函数,这些函数可以实现日期在不同的日历系统之间的转换。我们使用的主要日里有Gregorian、Julian和Julian Day Count。

Gregorian日历是大多数西方国家目前使用的历法。Gregorian中的日期1582年10月15日,1582与Julian日历中的1582年10月5日等有效。而在此日期以前,有些国家甚至在20世纪早期才转换。

除了这两个日历之外,我们可能还没有听说过Julian Day Count日历。该日历与UNIX时间戳有许多相似之处。它是从对于大约公元前4000起的某个日期开始计算的日子数,自身并不是特别有意义,但是它对于格式之间的转换却非常有用。要将一个日历格式转换到另一个日历格式,我们首先要换成Julian Day Count,然后再将其转换成输出的日历。

使用会话的基本步骤

使用会话的基本步骤有4点:开始一个会话;注册会话变量;使用会话变量以及注销变量并销毁会话等。

1.开始一个会话

在使用会话之前,要先开始一个会话。可以通过如下介绍的两种方法来开始一个会话。

第一种方法,也是最简单的方法,就是以调用session-start()函数开始一段脚本:

session-start();

该函数将检查是否有一个会话ID存在。如果不存在,就创建一个,使其能够通过超级全局数组$-SESSION进行访问。如果已经存在,将这个已经注册的会话变量载入以便使用。

使用private和public关键字控制访问

因为PHP提供了访问修饰符。所以它们可以控制属性和方法的可见性。一般,把它们放置在声明和方法之前。PHP支持如下3种访问修饰符:

1.默认选项时publick,这意味着如果没有为一个属性或方法指定访问修饰符,它将是public。公有的属性或方法可以在类的内部和外部进行访问。

2.Private访问修饰符意味着被标记的属性或方法只能在类的内部进行访问。如果没有使用—get()和—set()方法,你可能会对所有属性都使用这个关键字。也可以选择使得部分方法成为私有的。如:如果某些方法只是在类内部使用的工具性函数。私有的属性和方法将不会被继承.
     
3.protected访问修饰符意味着被标记的属性或方法只能在类内部进行访问。它也存在与任何子类;在这里可以将protected理解成位于private和public之间的关键字。

使用-call()重载方法

以前我们介绍过一些具有特殊意义的类方法,这些方法的名称都是以双下画线开始的(_),例如,_get()、_set()、_construct()和_destruct()。另一个示例就是_call()方法,在PHP中,该方法用来实现方法的重载。

方法的重载在许多面向对象编程语言中都是常见的,但是在PHP中却不是非常有用,因为我们习惯使用灵活的类型和(容易实现的)可选的函数参数。
要使用该方法,必须实现---call()方法,如下例所示:
public function -call($method,$P)
{
   if  ($method = = “display”) {
     if (is-object($P[0])) {
       $this->displayobject ($p[0]);
     } else if(is-array($p[0])) {
        $this->displayArray($p[0]);
     } else {
        $this->displayScalar($P[0]);
     }
   }
}

如何正确使用设计模式

软件开发发展到现在已经有了很多模式,相信大家对设计模式已经不再陌生,但是模式有那么多种,我们究竟怎样使用是正确的呢?

1.模式的必要性
设计模式不仅仅是软件开发和设计的基础,它还具有语言无关性。设计模式也为开发人员之间的交流提供了共同的“词汇”,从而使团队的沟通更加有效,通常短短的一句话就可以将一个问题讲明白,同时他也能促进团队组员不断学习。且设计模式是建立在一些重要的设计原则和思想之上进一步提炼,对不同的问题和场景给出了实际操作的代码示例和可以借鉴的结构。所以不管现存的设计模式有多少种,每一种模式都是从不同的侧面反应和遵守这些原则和思想的——万变不离其宗。

代数恒等式的使用

在DAG上消除死代码的操作可以按照如下方式实现。我们从一个DAG上删除所有没有附加活跃变量的根结点(即没有父结点的结点)。重复应用这样的处理过程就可以从DAG中消除所有对应于死代码的结点。

代数恒等式表示基本块的另一类重要的优化方法。比如,我们可以使用诸如:

x+0=0+x=x  x-0 =x

x*1=1*x=x  x/1 =x

这样的恒等式来从一个基本块中消除计算步骤。

另一类代数优化是局部强度消减(reduction in strength),就是把一个代价较高的运算替换为 一个代价较低的运算。比如:

«123»
最近发表
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
搜索
Tags列表
网站收藏
图标汇集
  • 订阅本站的 RSS 2.0 新闻聚合
友情链接

热门搜索: 外链域名 高外链域名 高收录域名

Copyright www.thyst.cn. Some Rights Reserved.