1.前言
ASP.NET WEB应用程序通常属于多层体系结构,一般从逻辑结构上可以分为表示层、业务逻辑层和数据访问层;客户端要访问应用程序资源,其身份认证和授权必然要跨越多个层次。本文主要讨论SP.NET应用程序的资源访问安全模型
2. 资源访问标识
WEB应用程序对外提供的给客户端的典型资源包括:
Web服务器资源,如Web页、Web服务和静态资源(HTML页和图像)。
数据库资源,如针对每个用户的数据或是应用程序级数据。
网络资源,如远程文件系统资源等。
系统资源,如注册表、事件日志和配置文件等。
客户端跨越应用程序的层来访问这些资源,要有一个标识流经各个层。这个用于资源访问的标识包括:
原始调用...
Asp.net的多层架构主要是为了解决数据层,逻辑层,表示层等之间的关系。我的做法是这样的:首先建立一个DataCore的基类。基类里面封装了一些低层的数据库的基本操作,比如说数据库联接,调用存储过程等等。在这里面有一个地方值得注意,通过对一个函数的重载可以实现调用不同功能的存储过程。以下代码示例:
protected int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
int result;
Connection.Open();
SqlCommand command = BuildIntCommand( storedProcName, parameters );
rowsAffected = command.ExecuteNonQuery();
result = (int)command.Parameters[&...
我们针对验证码技术深入的了解图形编程在ASP.NET中的应用。
验证码技术是目前很多WEB程序采用的一种安全防御技术。系统在登录的时候不但要输出用户名和密码,还要额外输入一种随机生成的验证码文本,此时用户需要正确的输入这三个信息才能登录到系统中。
由于验证码技术能有效的抵御某些黑客攻击,因此得到相当广泛的应用,而且在一些C/S系统中也采用了这种源自WEB开发的技术。
验证码原理
在现在的软件运行环境下,安全成为大部分软件必须考虑的问题,黑客无处不在,攻击方式日益丰富,尤其是WEB系统由于其开放性更是遇到严峻的考验,黑客事件层出不穷,造成的损失和影响也不断变大,对此我们软件开发人员需要对...
asp.net控件的显示自然会离不开输出html、css、javascript等前台的显示内容,所以开发一个控件的时候第一件事就是要知道如何输出客户端要显示的内容。
一、选择基类
asp.net中所有的标准控件都可以拿过来作为基类,如果我们要开发的控件只是对原有的标准控件做一些功能上的加强的话(如:你对TreeView的CheckBox添加一些随动的功能),就可以直接拿标准控件过来作为基类。
一般的如果开发的控件从标准里面找不到合适的,可以从三个类中来继承:
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.CompositeControl
下面介绍下这三个类的关系跟区别:
...
前言:我们在开发网站时,在管理后台,管理员通常要定期对数据库进行备份(当然也可以让sqlserver服务器定期自动备份,但我此处讲的是asp.net中的备份),备份的代码很简单:
下面是我做一个网站后台时在"备份"按扭下写的一个事件:
protected void Button1_Click(object sender, EventArgs e)
...{
string newname = "WebJake" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString()+".bak";
SqlConnection cn = DB.createCon();
string nepath=Server.MapPath("../../Dat...
我们开发出来的控件一般都需要跟使用控件的人编程人员交互,其中交互有两个途径:一个是属性还有就是事件。属性可能是简单的类型如:int、string等并不太复杂的类型,也有比较复杂的类型如:集合。
一、属性实现交互
我们还是沿用上面的例子来添加属性 PicShow示例:
public class PicShow : Control
{
private string _imgUrl;
//属性
public virtual string ImgUrl
{
get
{
return this._imgUrl;
}
set
{
this._imgUrl = value;
}
}
protected override void Render(HtmlTextWriter writer)
{
writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
writer.Ad...
Asp.net 中在客户端触发服务端事件分为两种情况:
一. WebControls中的Button 和HtmlControls中的Type为submit的HtmlInputButton
这两种按钮最终到客户端的表现形式为: < input name="Submit1" id="Submit1" type="submit" value=”Submit”>,这是Form表单的提交按钮,点击以后会作为参数发送到服务端,参数是这样的: 控件的name属性=控件的value值,对应上面的例子就是:Submit1= Submit。 服务端会根据接收到的控件的name属性的这个key来得知是这个按钮被点击了,从而在服务端触发这个按钮的点击事件。
二. HtmlControls 中的 Type为button的HtmlInputButto...
在开发中,经常遇到需要使用ASP.NET与JavaScript联合进行控制的情况。本文将使用DataGrid进行数据绑定,使用Javascript控制当选中其中的checkbox时,该行颜色改变。
首先,在页面中创建一个DataGrid控件,并设置其模板。
< asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
< Columns>
< asp:TemplateColumn>
< ItemTemplate>
< asp:CheckBox id="checkbox1" Runat ="server">< /asp:CheckBox>
< asp:Label runat="server" Text='< %# DataBinder.Eva...
摘要:本文介绍在 Visual Studio .NET 中使用 ASP.NET 和 ADO.NET 创建 Web 窗体时涉及的多项关键技术。其中包括四个完整的示例,说明如何在此环境中使用 Visual FoxPro 7.0。
简介
Microsoft® Visual Studio® .NET 中的一些最明显的变化在于扩展了以 ASP.NET 实现的 Active Server Pages (ASP) 技术。Microsoft .NET 框架引入了以下两个主要高级功能,而 ASP.NET 是它们的技术基础:Web 窗体和 XML Web services。
Web 窗体用于前端 Web 开发。Visual Studio .NET 中新增的 Web 窗体设计器提供了所有 .NET 语言都可以使用的公共用户界面,并提...
你的站点有被客户投诉很慢吗?是不是查了很多遍还是没有完全解决?是不是数据库没有发现异常,CPU也没有异常,内存占用量没有异常,GC计数没有异常,硬盘IO也没有异常,带宽没有异常,线路没有异常,没有丢包,但就是被投诉?而且还是阵发性的,有某个用户投诉慢的时候,你访问却很快,本地又复现不出来?今天你访问了博客园真是太幸运了,也许这里就有你想要的一个答案——假如你的站点动态处理了图片或者其他原本不会动态处理的非网页资源的话。没想到吧,这是Session惹的祸!
我们公司某个站点访问量一直很大,几年前就已经发现客户经常投诉说很慢,而这个问题我们一直都在排查和解决。从线路问题,到数据库连接泄露,到...
公司有个项目是使用实体刷卡的会员管理系统,并为其它系统如餐饮系统、美发厅管理系统等提供统一的会员注册与信息管理。暂定使用一维条形码卡。
一般来说,商品最常用的编码是EAN-13,而非商品(如图书馆会员卡,驾驶证条码等)一般使用39码。
39码
39码比较简单,条码以“*”为起始符和终止符,见下图:
它所能表示的字符包括:0~9 的数字,大写 A~Z 的英文字母,「+」,「-」,「*」,「/」,「%」,「$」,「.」,以及空格符(Space)等,共44组编码。
39码表:“0”对应白色空位,“1”对应黑色线条。
字元
...
近一段时间以来,我发现博客又掀起了新的一轮讨论热潮,特别是针对WebForm和MVC的讨论。这样的讨论可以促进大家的进步,同时也可以让每个人对每种技术的了解都更加深入。不同的技术都有自己的最佳实践,比如WebForm和MVC。如果我们大家在平常的开发实践中都能遵从每一种技术基本使用原则,而不是滥用,那么我就不信不会得到最佳效果。
这里,我要讨论的是如何合理的利用DataSourceControl,来简化我们在页面的一些数据操作,代替一部分的参数处理工作,并最终取代页面的后台代码文件。这个思路,源于在asp.net Blogs的一篇文章(我目前已经找不到该文章的链接的,大概意思就是讲如果利用DataSourceControl来封装一些复杂...
常见的处理方法是,在用户登录时,判断此用户是否已经在Application中存在,如果存在就报错,不存在的话就加到Application中(Application是所有Session共有的,整个web应用程序唯一的一个对象): 以下是ASP.NET代码:【复制代码】 string strUserId = txtUser.Text;
ArrayList list = Application.Get("GLOBAL_USER_LIST") as ArrayList;
if (list == null)
{
list = new ArrayList();
}
for (int i = 0; i < list.Count; i++)
{
if (strUserId == (list[i] as string))
{
//已经登录了,提示错误信息
lblError.Text = "此用户已经登录";
return;
}
}
list...
在判断的时候只要把取得的文本框的值与“Session["valicode"] ”进行判断是否一致就行了。
//建立位图对象
Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb);
//根据上面创建的位置对象创建绘图面
Graphics g = Graphics.FromImage(NewbitMap);
//以指定的颜色填充矩形区
g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, 90, 22));
//创建字体对象
Font newfont = new Font("幼圆", 14);
//创建RectangleF结构指定一个区域
RectangleF rectangle = new RectangleF(0, 0, 90, 22);
//创建随机数
Random Newrd = ne...
当要进行MD5加密的字符串不含中文时,那么ASP.NET的加密结果和ASP是一致的:
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("www.goalercn.com", "MD5"));
//结果:D66E1F138689B9B5AA4C520D9EAFFB61
Response.Write(MD5("www.goalercn.com",32))
'结果:d66e1f138689b9b5aa4c520d9eaffb61
当要进行MD5加密的字符串含中文时,两者的加密结果就不一致了:
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile("木子屋", "MD5"));
//结果:34D9CBD5164C47058DFA3A...
阅读提要 在缺省状况下,你只能使用Visual Studio 2005的一个本机实例来管理与ASP.NET 2.0一同发行的SQL Server数据库中的安全凭证。本文将向你展示怎样用一个Web服务来包装ASP.NET 2.0提供者并通过使用一个Windows表单应用程序来管理凭证存储从而扩展这种管理能力。 如今,无论是互联网还是企业内部局域网程序一般都要求使用定制的方式来存储和管理用户帐户和角色。为此,ASP.NET 2.0提供了一个现成的提供者模型和一个SQL Sever数据库。不幸的是,只能通过Visual Studio 2005来管理该凭证数据库且只能针对本机Web应用程序。这无疑是非常不方便而且不能广泛使用的。 本文描述了一个超...