博文
ASP.NET2.0数据库之SQL Server安全性(2006-08-03 11:24:00)
摘要:SQL Server的安装有两个关于安全模式的选项。它们之间的差别在于由哪一个软件执行认证过程。认证是一个确认将要连接SQL Server的用户身份的过程。一旦执行了认证,SQL Server就能验证这个用户是否具有许可来连接一个被请求的资源,例如一个数据库。如果用户具有连接数据库的许可,那么SQL Server将允许连接请求成功,否则,连接失败。这个验证用户许可的过程还被称为授权。
· Windows Authentication(还被称为Trusted Authentication或者Integrated Security)使用进行连接请求过程的Windows用户身份来执行对数据库的授权。在这种情况下,连接字符串不必提供显式的用户名和密码。ASP.NET以一个名为"ASPNET"的本地用户来运行(或者在IIS 6.0当中使用用户名"Network Service"),所以当使用Windows Authentication时,SQL将会检查这个用户是否拥有使用数据库的许可。此时,所有的ASP.NET应用程序都用这个相同的用户运行,所以该安全模式对这些应用程序一视同仁。虽然可以在单独的ASP.NET进程中运行每一个应用程序(单独的用户运行每个程序),或者可以模拟进行连接请求的浏览器客户的Windows用户身份,但是这些内容都超出了本书所要讲述的范围。不过,客户模拟的情况在Web应用程序中是Windows Authentication最常见的使用方式。
· SQL Authentication针对在SQL Server内配置的用户来检查显式提供的用户名和密码(无需涉及操作系统)。在这种情况下,在ASP.NET进程中运行的每个应用程序都能以单独的证书来连接数据库,这样就把应用程序合理地隔离开了(应用程序A如果没有B的用户名和密码就不能连接至B的数据库)。这是用于部署的Web应用程序的最常见认证模式,特别是在共享宿主的情况下。它的一个小缺点就是需要应用程序保留用于连接的用户账户的密码,并且如果该密码被恶意用户获取,那么将危及数据库的安全。但是,在本书后面将会看到,ASP.NET提供了一个安全的方式,将SQL Authentication密码以加密的格式保存在Web.config文件中,这样就降低了密码被获取的风险。
· Mixed Mode是SQL S......
C#-委托和事件(2006-08-03 11:23:00)
摘要:
要为类构造一个事件,必须用 event 来声明一个 delegate 型的字段,如:
puclic calss Test{
public delegate EventHandler(object sender, EventArgs e); //声明为delegate 型的事件;
}
然后要指定一个事件的名称,并写出处理语句:
public event EventHandler Load
在创建类的实例后定义这个 “Load”事件:
Test m=new Test();
m.load=new EventHandler(m_Load);
void m_Load(object sender, EventArgs e)
{
MessageBox.Show(" this is a class event");
}
再看看下面的完整的一段代码:
using System;
class TestClass
{
static void Main(string[] args)
&nbs......
.NET Framework与.NET Framework SDK有什么不同?(2006-08-03 11:22:00)
摘要:
很多新手也学了很长时间的.NET,但对于这.NET Framework与.NET Framework SDK到底有什么区别可能还是不太清楚,本人也是借别人的话重新阐述一下,希望可以给新手提供帮助。
.NET Framework是微软开发的运行于老版本之上的.NET软件运行平台。只要安装了.NET Framework,则从Windows 98到Windows XP都可以运行.NET程序。它是一种新的软件运行平台,提供了.NET程序运行时支持和功能强大的类库。可以从微软网站免费下载,大概20多MB。
如果只安装了.NET Framework,只能运行.NET应用程序,而不能开发.NET应用程序。
.NET Framework SDK 包括了微软提供的.NET 语言编译器(如C#编译器CSC.exe和VB.NET编译器VBC.exe),完整的.NET Framework文档,以及各种工具(如AL.exe和SN.exe等),大概有110多MB。
装了这两个东西之后,你就可以用记事本来编写代码,然后在DOS窗口中手动编译.NET程序啦。......
设置上传文件的最大大小(2006-08-03 11:21:00)
摘要:在web.config中添加httpRuntime元素,如下:
<configuration>
<system.web>
<httpRuntime maxRequestLength="8192"
useFullyQualifiedRedirectUrl="true"
executionTimeout="45"
versionHeader="1.1.4128"/>
</system.web>
</configuration>
其中maxRequestLength属性就是限制上传大小的,如设为"8192"即为8M。......
将ASP.NET页面内的数据导出到Excel 或 Word中(2006-08-03 11:21:00)
摘要:
在以下按钮单击事件中实现:
private void btnMIME_Click(object sender, System.EventArgs e)
{
BindData();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "inline;filename="
+ HttpUtility.UrlEncode("下载文件.xls",Encoding.UTF8 ) );
//如果输出为Word,修改为以下代码
//Response.ContentType = "application/ms-word"
//Response.AddHeader("Content-Disposition", "inline;filename=test.doc")
StringBuilder sb=new StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(sb);
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(sw);
sb.Append("<html><body>");
dgShow.RenderControl(hw);
sb.Append("</body></html>");
Response.Write(sb.ToString());
Response.End();
}
注:1.若DataGrid中有按钮列,则在导出前应先将其隐藏.
2.若......
使用ASPX输出XML应注意的问题(2006-08-03 11:20:00)
摘要:
Ajax应用程序中服务器端如果使用ASPX返回XML格式数据,一般将VS生成的HTML字符先清除,代码文件中直接使用Response.Write输出XML字符串。
需要注意的是要设置Response的相应属性客户端才能正确解析字符串。
首先要设置ContentType 属性:
Response.ContentType = "text/xml";
如果xml字符串中包含中文则还要设置Charset属性:
Response.Charset = "GB2312";
然后按照XML文件的格式输出内容:
Response.Write("<?xml version=\"1.0\" encoding=\"GB2312\" ?>");
今天就是因为这个Charset让我郁闷了好久,因为XML字符中中包含中文字符而又没有设置Charset,因此XMLHttpRequest.responseXML总是null,查了半天资料终于恍然大悟。......
介绍几个ASP.NET中容易忽略但却很重要的方法函数(2006-08-03 11:19:00)
摘要:
给大家介绍几个.NET中Path类的几个方法:
1. Path.combine(string, string)
根据给出的两个路径, 返回一个路径.
例如:
string CompletePath = System.IO.Path.Combine(@"c:\MyApp", @"Images\skyline.jpg");
将会返回一个全路径 c:\MyApp\Images\skyline.jpg
第一个参数中有无"\"结尾都可以.
2. Path.GetExtension(string)
返回给定文件路径的扩展名.例如:
string FileExtention = System.IO.Path.GetExtention(@"C:\MyApp\Images\skyline.jpg");
将会返回 "jpg"
3. Path.GetFileName(string)
给出文件名的全路径,返回文件名(包括扩展名).例如:
string fileName = System.IO.Path.GetFileName(@"c:\MyApp\Images\skyline.jpg");
将会返回"skyline.jpg" ......
asp.net2.0中异步调用WebService(异步页)(2006-08-03 11:17:00)
摘要:
由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升。
使用异步页,首先要设置Async="true",异步页是在Prerender和PrerenderComplete事件间加入Begin,end异步方法实现的,Begin和End方法属于不同的线程。
WS异步页的实现有两种方式:
1、使用等待方法实现异步
通用类,封装了WS
/**//// <summary>
/// 使用等待方法实现异步
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
private Account account;
private string username;
public Account Account
{
get { return account; }
set { account = value; }
&nbs......
请求网址并解析返回的html(2006-08-03 11:14:00)
摘要:
目的,把远程服务器传回的Html,解析到类里面,为GridView等提供数据源
1 、向远程服务器Post数据
public int PostData(string url, string data, out string info)
{
info = "";
CookieContainer cc = new CookieContainer();
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
request.CookieContainer = cc;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
Stream requestStream = request.GetRequestStream();
......
.net 做的IP 访问限制 (2006-08-03 11:13:00)
摘要:
偶做留言本的时候想起做这么个,具体思路也许不好,做出来只是抛砖引玉,希望有更好的方法!
IP添加页是用了一个ListBox, TextBox,两个Button
而在其他的页上则直接用当前IP对比数据库中的IP,代码如下!
限制IP添加页HTML代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ip.aspx.cs" Inherits="admin_ip" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<link href="../images/news.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:book %>"
ProviderName="<%$ ConnectionStrings:book.Pr......