夜的第七章

WEB开发个人博客。

.NET 访问 oracle 数据库相关[转载]

长期以来,我一直用的是 MS SQL Server / Access 数据库,通过 .NET 访问 MS 自家的东西几乎没碰到过什么麻烦。最近项目中要用 oracle 作为数据库,学习研究了一些 .NET 访问 oracle 的东西,发现问题倒真的不少。

1。System.Data.OracleClient 和 System.Data.OleDb 命名空间

虽然通过这两个命名空间的类都可以访问 oracle 数据库,但和 SQL Server 类似的(System.Data.SqlClient 命名空间的类效率要比 System.Data.OleDb 命名空间中的类高一些),System.Data.OracleClient 命名空间中的类要比 System.Data.OleDb 命名空间的类效率高一些(这一点我没有亲自验证,但大多数地方都会这么说,而且既然专门为 oracle 作的东西理论上也应该专门作过针对性的优化)。

当然还有另一点就是从针对性上说,System.Data.OracleClient 要更好一些:

今天抽空把放blog园的东西移了过来

发现还是放这里更自由些吧.
却没找到blog园删除帐户的功能~

关于人的思考...

人做事是不需要理由的,就像吃奶与走路一样,只是一种意识或者行为.
如果一个人在外面杀了一个人,会被抓去被限制了自由,如果问他为什么这样做,他没有理由时,便会被定义属性为病的特征,然后送至一个叫医院的地方,用药物去刺激他的神经,强制其意识来反馈自己的行为.

实现页面URL的重写

其实也不是很难.

首先把URLRewriter引用了
然后,

asp.net 页面出错转向设置

<customErrors mode="RemoteOnly" defaultRedirect="~/error.html">
   <error statusCode="500" redirect="~/500.html" />
   <error statusCode="404" redirect="~/404.html" />
   <error statusCode="403" redirect="~/403.html" />
  </customErrors> 

multiline的TextBox的长度限制(网摘)

用js来控制:   
  textbox里面   onPropertyChange="textCounter(this,   70)"   
  js:<script>   
  function   textCounter(field,   maxlimit)   {     
  if   (field.value.length   >   maxlimit)     

关于 Forms验证的问题

以前总是搞糊涂,在目录下面建web.config也会出错,总不知道该怎么办.今天就找点自己深入一下.
首先把machine.config中的allowDefinition='MachineToApplication'改为allowDefinition='EveryWhere'
 

Forms 身份验证通常指这样一个系统,在该系统中使用 HTTP 客户端重定向将未经身份验证的请求重定向到 HTML 窗体。如果应用程序需要在登录时通过 HTML 窗体收集自己的用户凭据,那么选择 Forms 身份验证就很好。用户提供凭据并提交该窗体。如果应用程序对请求进行身份验证,系统会发出一个 Cookie,在其中包含用于重新获取标识的凭据或密钥。随后发出在请求头中具有该 Cookie 的请求。ASP.NET 事件处理程序使用应用程序指定的任何验证方法对这些请求进行身份验证和授权。

<forms name="name" 
loginUrl="url"
protection="All|None|Encryption|Validation"
timeout="30"
path="/"
requireSSL="true|false"
slidingExpiration="true|false">
<credentials passwordFormat="format"/>
</forms>

可选属性

属性选项说明
name     指定要用于身份验证的 HTTP Cookie。默认情况下,name 的值是 .ASPXAUTH。如果在单个服务器上正运行多个应用程序并且每一应用程序均要求唯一的 Cookie,则您必须在每一应用程序的 Web.config 文件中配置 Cookie 名称。
loginUrl     指定如果没有找到任何有效的身份验证 Cookie,为登录将请求重定向到的 URL。默认值为 default.aspx。
protection     指定 Cookie 使用的加密类型(如果有)。
    All 指定应用程序同时使用数据验证和加密来保护 Cookie。该选项使用已配置的数据验证算法(基于 <machineKey> 元素)。如果三重 DES (3DES) 可用并且密钥足够长(48 位或更多),则使用三重 DES 进行加密。All 是默认(和建议)值。
    None 指定对于将 Cookie 仅用于个性化并且具有较低的安全要求的站点而言,同时禁用加密和验证。不推荐以此方式使用 Cookie;但是,这是使用 .NET Framework 启用个性化的占用资源最少的方式。
    Encryption 指定使用三重 DES 或 DES 对 Cookie 进行加密,但不对该 Cookie 执行数据验证。以此方式使用的 Cookie 可能会受到精选的纯文本的攻击。
    Validation 指定验证方案验证已加密的 Cookie 的内容在转换中是否未被改变。Cookie 是使用 Cookie 验证创建的,方式是:将验证密钥和 Cookie 数据相连接,然后计算消息身份验证代码 (MAC),最后将 MAC 追加到输出 Cookie。
timeout     指定以整数分钟为单位的时间量,超过此时间量,Cookie 将过期。默认值是 30。如果 SlidingExpiration 属性为 true,则 timeout 属性是一个弹性值,以收到最后一个请求后指定的分钟数为到期时间。为避免危及性能,以及为避免向启用 Cookie 警告的用户显示多个浏览器警告,在经过了超过一半的指定时间后更新该 Cookie。这可能导致精确性上的损失。持久性 Cookie 不超时。
path     为由应用程序发出的 Cookie 指定路径。默认值是正斜杠 (/),这是因为大多数浏览器是区分大小写的,并且如果路径大小写不匹配,将不发送回 Cookie。
requireSSL     指定是否需要安全连接来转换身份验证 Cookie。
    true 指定必须使用安全连接来保护用户凭据。如果是 true, ASP.NET 为身份验证 Cookie 设置
,兼容的浏览器不返回 Cookie,并且除非连接使用的是安全套接字层 (SSL)。
    false 指定在传输 Cookie 时,安全连接不是必需的。默认值为 false
slidingExpiration     指定是否启用弹性过期时间。在单个会话期间,弹性过期时间针对每个请求重置当前身份验证 Cookie 的过期时间。
    true 指定启用弹性过期时间。在单个会话期间,身份验证 Cookie 被刷新,并且每个后续请求的到期时间被重置。ASP.NET 版本 1.0 的默认值为 true
    false 指定不启用弹性过期时间,并指定 Cookie 在最初发出之后,经过一段设定的时间间隔后失效。默认值为 false


通过在应用程序的Web.config文件中加入一个入口,可以进行基于窗体的身份鉴别。如下所示:

   <system.web>
       <authentication mode="Forms">              
          <forms name="Auth" loginUrl="login.aspx" protection="All" path="/"></forms>
       </authentication>
    </system.web>

 

设置窗体的验证
<location path="需要验证的页面.aspx">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
    </location>

IE中jscript/javascript的条件编译(摘抄)

条件编译概述

在IE中,有一个鲜为人知的功能叫做条件编译(conditional compilation)。自从IE4开始支持这个功能,它由于在一些Ajax相关的javascript脚本中出现而受到一些关注。条件编译作为一种独立形式的对象判断,使得IE可以根据预定义或用户定义的条件来决定你的jscript或javascript代码特定部分是否编译。也可以把它看成是你的代码的条件注释(contional comments,很快会翻译这篇文章),使你的代码能够在非IE浏览上也顺利运行。

语法概述

初级 WINDOWS API C++语言版 编程(转)

当我们使用着漂亮的界面,方便快捷的应用程序的时候。我们才会发现,以前曾编写的程序是多么的粗糙(TC编写的程序)。简单的界面,16色的显示系统,大大的落后于计算机的发展。简单的说就是杀鸡用牛刀。如何该改变这种情况呢?Microsoft公司在推出windows操作系统的时候给出了简单易行的解决方案。这就是WINDOWS平台API应用程序接口。当然API也是发展的,它从WIN 16 API发展到了现在普遍使用的WIN 32 API。只有充分理解API函数功能和用法,才能深入到WINDOWS系统的内部,才能充分挖掘出操作系统给我们提供的强大功能。现在就让我们放弃那DOS应用程序,进入WINDOWS编程的海洋之中吧。

要想了解WINDOWS API那么我们必须先了解WINDOWS下的程序是如何进行驱动的。同学们可以很清楚的发现到,当你在使用WINDOWS记事本的时候,当键盘输入字符的时候字就会出现在屏幕上。当你移动鼠标的时候,光标就会在屏幕上移动。双击鼠标、单击鼠标就会有相应的事件发生。这些都是由于WINDOWS具有的事件驱动的属性造成的。比如说当你按下键盘的字符键的时候,消息队列就会向程序发送WM_CHAR的消息,如果你所写的程序中含有处理这个消息的函数,程序就会执行它。

为了更好的了解WINDOWS编程,这里我必须介绍几个基本的概念:

WINDOWS SDK 常用API (转)

10. API之硬件与系统函数 
ActivateKeyboardLayout 激活一个新的键盘布局。键盘布局定义了按键在一种物理性键盘上的位置与含义 
Beep 用于生成简单的声音 
CharToOem 将一个字串从ANSI字符集转换到OEM字符集 
ClipCursor 将指针限制到指定区域 
分页:« 首页...«123456»...尾页 »



[2007 - 2011] © Leadnt.com