博文

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......

阅读全文(1740) | 评论:0

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......

阅读全文(2000) | 评论:0

.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程序啦。......

阅读全文(2046) | 评论:0

设置上传文件的最大大小(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。......

阅读全文(2170) | 评论:0

将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.若......

阅读全文(2144) | 评论:0

使用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,查了半天资料终于恍然大悟。......

阅读全文(1903) | 评论:0

介绍几个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"       ......

阅读全文(1773) | 评论:0

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......

阅读全文(3680) | 评论:0

请求网址并解析返回的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();
       ......

阅读全文(2594) | 评论:0

.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......

阅读全文(4299) | 评论:0