浅谈ASP.net安全编程
在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里的缓存数据,其中就有大量的Cookie文件。如图1所示。问题是,这样安全吗?
于是,我们会想到很多安全措施,比如使用SSL、建立网上银行一样的强认证方式等,但是,对于大部分网站而言,可能这些方法具有一定的困难性,因为要实现这些比较强的安全措施,最起码需要一台服务器,在经济上显然不是小数目。那么,有没有比较经济的方法来解决这类问题呢?答案是肯定的,现在.NET构架在System.Security.Cryptography命名空间里提供了许多加密类可以利用,包括安全的数据编码和解码以及散列法、随机数字生成和消息身份验证。下面,我们来看看几个比较典型的例子,以供参考。
实现ASP.net表单的安全提交
使用ASP.NET环境下的电子邮件功能,我们可以容易的实现发送电子邮件。可能我们会说,不用ASP.NET,直接使用HTML,也可以实现以上功能。其实,这是完全不一样的:使用HTML,用户提交信息的时候,是调用客户端的邮件收发软件,使用用户的邮箱发送表单信息,如果用户没有邮箱或者用户没有邮件收发软件,就不能提交信息;而采用ASP.NET,可以使用服务器端(程序设计者)提供的邮箱和SMTP服务器,也不需要客户安装邮件收软件,一切都直接在服务端完成,显然更加适合我们的要求。现在,我们就来看以上功能的代码实现。首先,我们来看网页界面实现的关键代码:
<Form id="form1" runat="server">
姓名: <asp:TextBox id="txtFname" runat="server" />
地址: <asp:TextBox id="txtAddr" runat="server" />
内容: <asp:TextBox id="txtContent" runat="server" />
<asp:Button id="btnEmail" Text="提交" onclick="doEmail" runat="server" />
</Form>
以上只是很简单的几个提交项,在实际中,我们可以根据需要增加。还是根据上述例子,因为需要用到电子邮件功能,所以,我们需要引入Email名字空间:<%@ Import Namespace="System.Web.Mail" %>;然后,我们来实现按钮btnEmail的点击事件:
Sub doEmail(Source as Object, E as EventArgs)
Dim sMsg as String
sMsg+="提交信息:
相关文档:
一、ASP.NET页面
一个ASP.NET页面(或者称为ASP.NET窗体)由以下几个部分组成:
1、指令
(包括@Page、@Import、@OutputCache、@Implements、@Register、@Master、@Control…)
2、Head(HTML文档头)
3、Body(HTML文档体)
窗体元素(form)
控件(html标记、服务器控件标记)
4、代码(客户端代码,服务端 ......
Session模型简介
Session是什么呢?简单来说就是服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其分配一个SessionID,用以标识这个用户的唯一身份。这个SessionI ......
可以使用 ISAPI 筛选器在 IIS Web 服务器级别实现 URL 重写,也可以使用 HTTP 模块或 HTTP 处理程序在
ASP.NET 级别实现 URL 重写。本文重点介绍如何使用 ASP.NET 实现 URL 重写,因此我们将不对使用 ISAPI 筛选器实现
URL 重写的细节进行深入探讨。但是,有大量的第三方 ISAPI 筛选器可用于 URL 重写,例如: ......
今天在开发中,遇到了一个问题:
在Header中有一个搜索输入框,搜索按钮是Button控件,在“资讯文章搜索”用户自定义控件中也用到了Button控件。
将焦点停在“资讯标题或内容”输入框中,回车,但是相应的是Header中输入框内容。
原 ......
Asp.net日期字符串格式化显示--DateTime.ToString()用法详解
我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34
如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?
这里将要用到:DateTime.ToString的方法(String, IFormatProvider)
示例:
using System;
using Syste ......