导航:首页 > 文档加密 > aspnet典型模块pdf

aspnet典型模块pdf

发布时间:2022-12-20 03:12:10

⑴ HttpMoler与HttpHandler介绍和简单使用

当客户端请求一个*文件的时候,这个请求会被 inetinfo.exe (IIS相关的系统组件)进程截获,它判断文件类型后,将这个请求转交给 ASPNET_ISAPI.dll , ASPNET_ISAPI.dll 会通过http管道(Http PipeLine)将请求发送给 ASPNET_WP.exe 进程,在 ASPNET_WP.exe 进程中通过HttpRuntime来处理这个请求,处理完毕将结果返回客户端。

inetinfo.exe 进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。

ASPNET_ISAPI.DLL :是处理.aspx文件的win32组件。其实IIS服务器是只能识别静态文件的,当IIS服务器发现被请求的文件是.aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。

aspnet_wp.exe 进程:ASP.NET框架进程,提运行的托管环境的CLR(公共语言运行时)就是寄存在此进程中。

ASP.NET Framework处理一个Http Request的流程:

HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpMole-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

ASP.NET请求处理过程基于管道模型,管道模型由多个HttpMole和HttpHandler组成(默认19个管道事件),ASP.NET把http请求依次传递给管道中各个HttpMole,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给客户端,可以在每个HttpMole中都可以干预请求的处理过程。

这里以简单在处理完请求后,输出一些公司的版权信息为例,关于context 可以注册的事件为19个,详细介绍参照图1.ASP.NET管道事件和页面生命周期示意图

然后在Web.config 中配置如下节点System.web节点下:

name 为Moler的名字,type:有两部分组成,前半部分是命名空间和类名组成的全名,后半部分是程序集名称。

可以在网站的任何一个网页下看到,如下信息:

图一---ASP.NET管道事件和页面生命周期示意图(图片来源于黑马学生)

在httpMole中自定义自己的HttpMole 可以实现登录,权限控制等操作。

HttpHandler是处理客户端的请求上下文的最后步骤,对服务器页面进行编译实例化执行,将处理后的信息返回给客户端,一旦自定义HttpHandler 将覆盖系统的默认HttpHander.

web.config配置:

3.2 注意

ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpMole对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后,仍经过Pipeline中各个HttpMole的处理,最后将HTML发送到客户端浏览 器中。

4 IHttpMole与IHttpHandler的区别整理

1.先后次序.先IHttpMole,后IHttpHandler. 注:Mole要看你响应了哪个事件,一些事件是在Handler之前运行的,一些是在Handler之后运行的

2.对请求的处理上:

IHttpMole是属于大小通吃类型,无论客户端请求的是什么文件,都会调用到它;例如aspx,rar,html的请求.

IHttpHandler则属于挑食类型,只有注册过的文件类型(例如aspx,asmx等等)才会轮到调用它.

3.IHttpHandler按照你的请求 生成响应的内容,IHttpMole对请求进行预处理,如验证、修改、过滤等等,同时也可以对响应进行处理

ASP.Net系统本身配置有很多HttpHandler和HttpMole,以处理aspx等.Net标准的页面文件,以及这些页面文件中标 准的事件处理等。查看%System%/Microsoft.NET\Framework\v2.0.50727\CONFIG目录下的 nfig文件中的httpHandlers和httpMoles节点,可以看到这些配置。如果有兴趣,可以使用Reflector查 看.Net系统中相关的类和方法,了解.Net如何处理以及做了什么处理。

.Net也提供了一套机制来开发自定义的HttpHandler和 HttpMole,均可以用于对HttpRequest的截取,完成自定义的处理。 HttpMole 继承System.Web.IHttpMole接口,实现自己的HttpMole类。必须要实现接口的两个方法:Init和Dispose。在 Init中,可以添加需要截取的事件;Dispose用于资源的释放,如果在Init中创建了自己的资源对象,请在Dispose中进行释放。

以上参考: http://www.ecity.cn/develop/474379.html

⑵ HTTP 错误 500.0 - Internal Server Error

您好:HTTP 错误 500.0 - Internal Server Error
详述此特定请求失败原因的错误消息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。 详细错误信息
模块 AspNetInitClrHostFailureMole
通知 BeginRequest
处理程序 PageHandlerFactory-Integrated-4.0
错误代码 0x8007007e
请求的 URL http://localhost:8888/default.aspx
物理路径 C:\inetpub\IpRen\default.aspx
登录方法 尚未确定
登录用户 尚未确定
最可能的原因:
•ISAPI 筛选器的路径不正确。
•IIS 收到了请求;但在处理请求过程中出现内部错误。产生此错误的根本原因取决于处理该请求的模块以及在错误发生时工作进程中所发生的事情。
•IIS 无法访问网站或应用程序的 web.config 文件。如果 NTFS 权限设置不正确,便会出现这种情况。
•IIS 无法处理网站或应用程序的配置。
•通过身份验证的用户没有使用此 DLL 的权限。
可尝试的操作:
•确保该 ISAPI DLL 的路径正确。
•确保 web.config 文件的 NTFS 权限正确,并允许访问 Web 服务器的计算机帐户。
•检查事件日志中是否记录了任何额外信息。
•确认 DLL 的权限。
•创建跟踪规则以跟踪此 HTTP 状态代码的失败请求。有关为失败的请求创建跟踪规则的详细信息,请单击此处。
链接和更多信息此错误表明在处理请求时出现问题。Web 服务器收到了请求,但在处理过程中出现错误,导致 500 错误。

⑶ 怎样给Ture Type字体加密(英文字体)

在asp.net2.0中,发布网站时,加密web.config,这样可以有效保证数据库用户和密码安全,其步骤如下:1.添加密钥执行:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pc "hnlaw" -exp其中"hnlaw"为密钥名称2.添加web.config节点在web.config的<configuration></configuration>之间添加:<configProtectedData> <providers> <add keyContainerName="hnlaw" useMachineContainer="true" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" name="hnlaw" type="System.Configuration.,System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers></configProtectedData>注意:这里keyContainerName="hnlaw"和name="hnlaw"分别表示你的密钥名称;3.加密web.config 到网站根目录添加一个批处理文件enweb.bat,内容如下: @echo off C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "system.web/identity" "E:\HS Studio\Donet2\Hnlawyer" -prov "hnlaw" C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" "E:\HS Studio\Donet2\Hnlawyer" -prov "hnlaw"PAUSE注册上面的的路径和名称!运行后出现成功!4.解密同样到网站根目录添加一个批处理文件deweb.bat,内容如下: @echo offC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "system.web/identity" "E:\HS Studio\Donet2\Hnlawyer"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pdf "connectionStrings" "E:\HS Studio\Donet2\Hnlawyer"PAUSE最后就是要注意:做完后找到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys目录下,找到生成的密钥文件(可按时间查找),给上network service可读取权限,不然会出现Error message from the provider: The RSA key container could not be opened.无法读取这样可能会出现,如果没有自己的服务器,没有权限修改MachineKeys目录,不知道还有其它解决办法,希望大家共享一下:)http://kary.cnblogs.com/archive/2006/05/19/404204.html

⑷ 怎么保护sqlconnection的链接字符串中的密码不泄露

楼主是想在WEB.CONFIG文件中加密数据库联接字符串吧?

web.config中加密连接字符串
旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。

ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET 2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找到被<connectionString>界定的区域(如果不存在,可自行添加)并在<Add>标记中输入如下代码。该标记有三个属性:name、connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。

e.g.

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="SQLProfileConnString" connectionString="server=FOX;database=MSPetShop4Profile;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLMembershipConnString" connectionString="server=FOX;database=MSPetShop4Services;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString1" connectionString="server=FOX;database=MSPetShop4;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString2" connectionString="server=FOX;database=MSPetShop4;user id=mspetshop;password=pass@word1;max pool size=4;min pool size=4;"
providerName="System.Data.SqlClient" />
<add name="SQLConnString3" connectionString="server=FOX;database=MSPetShop4Orders;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
providerName="System.Data.SqlClient" />
<add name="OraProfileConnString" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraMembershipConnString" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString1" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString2" connectionString="" providerName="System.Data.OracleClient" />
<add name="OraConnString3" connectionString="" providerName="System.Data.OracleClient" />
</connectionStrings>
<appSettings>
<!-- Pet Shop DAL configuration settings. Possible values: PetShop.SQLServerDAL for SqlServer, PetShop.OracleServerDALfor Oracle. -->
</appSettings>
</configuration>

通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加密必须由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\ v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:

aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db

加密连接字符串的命令行工具还可以使用虚拟路径语法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示:

aspnet_regiis –pe connectionStrings –app /BegAspNet2Db

一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进行一些更改,例如修改密码,则可以手动输入以下代码来解密。

aspnet_regiis –pdf connectionStrings c:\Websites\BegAspNet2Db

请注意,在默认情况下,加密过程使用了一个基于加密算法执行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。

PS:petshop4.0安装的时候如果选择 “Full Install”,那么配置文件默认就加密了,这也是我一开始怎么也找不到连接字符串,然后用windows集成验证怎么也登不上去的原因。

后来发现在安装目录下有两个批处理文件:

1、加密EncryptWebConfig.bat

@echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE

2、解密DecryptWebConfig.bat

@echo off
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"
PAUSE

加黑的就是两个文件的区别。

⑸ 《Web程序设计ASP.NET第2版》pdf下载在线阅读全文,求百度网盘云资源

《Web程序设计ASP.NET第2版》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1ayPcM5FHJG2RHV5BhMjm2w

?pwd=oq5i 提取码:oq5i
简介:全书共12章,内容分为两部分。第一部分为第1章和第2章,主要介绍Web基础知识和ASPNET相关知识。第二部分为第3章-第12章,从网络涉及的实用模块出发,结合流行的技术和组件,详细介绍每个模块的设计原理及实现过程,进而讲解ASP.NET在网络开发中的应用,内容主要包括ASPNET控件、ADO.NET、数据绑定、LINQ查询、网站主题、数据验证和网络优化等。

本书实践知识与理论知识并重,力求使读者通过亲自动手来掌握ASPNET新技术,从而学习尽可能多的知识,了解尽可能多的应用。本书可作为普通高等院校相关专业Web程序设计、网络程序设计、ASPNET程序设计等课程的教材,同时也适用于初、中级ASPNET用户学习参考。

⑹ 如何加密app.config

输入如下命令进行加密:
aspnet_regiis
-pef
connectionStrings
c:\Websites\BegAspNet2Db解密:
aspnet_regiis
-pdf
connectionStrings
c:\Websites\BegAspNet2D
对于app.config,直接运行时会出错。但其实app.config和web.config原理是完全一样的,细心的用户可以发现app.config的说明也是web
file。

⑺ 电脑知识 :ASPNET+MS SQL Server 2000+IIS

ASP.NET是一种在visual studio (包含很多开发工具)里面用于软件开发的一种工具.可以用不止一种语言来开发.
数据库SQL server 2000楼上说的很对了.
安装IIS方法
放入系统安装盘或是从网上下载ISS安装包
打开控制面板-添加或删除程序-添加或删除WINDOWS程序-打勾安装.
这个是做网站必须的.
个人感觉你用visual studio做网站,比较难,不如用dreamweaver.
ASP+MYSQL+IIS.还有你要学的东西比较多,至少熟练使用除C语言以外的一种吧.

⑻ asp.net的配置文件web.config怎么解密

使用“”形式来加密
test.aspx程序文件基本如上,

section.SectionInformation.ProtectSection(“”);
改成
section.SectionInformation.ProtectSection(“”);
但这个时候你访问网站的时候很有可能会出现
说明:
在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 未能使用提供程序“”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
这样的错误,解决方法是:
进dos运行:aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”
如果运行出错,需要把目录 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入环境变量path中。此时就可以成功访问网站了。
同样可以通过命令行来实现“”加密
注意:你也可以不运行 aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”命令来注册默认的
的RSA 密钥容器
方法如下:
1)创建一个可导出的rsa密钥容器,命名为Key
aspnet_regiis -pc “Key” -exp
2)在你要加密的信息前面指定密钥容器,如:
<configProtectedData><providers><clear /><add name=”KeyProvider” type=”System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL” keyContainerName=”Key” useMachineContainer=”true”/></providers></configProtectedData><connectionStrings><add name=”SQLConnString” connectionString=”Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;”providerName=”System.Data.SqlClient” /></connectionStrings>
并且确保在configuration节的xmlns属性有如下值:
3)对配置文件进行加密
aspnet_regiis -pef “connectionStrings” “E:\project\Test” -prov “KeyProvider”
参数分别为:需要加密的配置节、项目所在目录的物理路径、加密所使用的密钥容器名称
再看web.config文件,就会发现connectionStrings节已经被加密了,但
是运行程序会发现程序仍然可以正确访问数据库。
此时,只需运行:
aspnet_regiis -pdf “connectionStrings” “E:\project\Test”
就可以对web.config文件进行解密。
(注意,如果还是有错误,那可能是您没有给生成的密匙文件足够的权限,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目录下,找到刚生成的密匙文件,把network service用户的读取权限赋予给它,就可以了,
直接用命令的话也可以:命令如下 aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE” ,
可能需要重新启动iis
4)把密钥容器导出为xml文件
aspnet_regiis -px “Key” “e:\Key.xml”
这个命令只导出公钥,因此以后只能用于加密,而无法解密。
aspnet_regiis -px “Key” “e:\Keys.xml” -pri
这个则连私钥一起导出了,所以我们要用这个。
5)把密钥容器删除
aspnet_regiis -pz “Key”
删除后再运行程序,会提示出错:
分析器错误信息: 未能使用提供程序“KeyProvider”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
同理可以证明,在任何一台未安装正确的密钥容器Key的机器上,
程序都无法对connectionStrings节进行解密,因此也就无法正常运行。
6)导入key.xml文件
aspnet_regiis -pi “Key” “e:\Keys.xml”
此时,再运行程序会发现又可以解密了。证明加密与解密机制运行正常。
最后说一下这个机制所提供的安全性保障可以运用在什么方面:
对winform程序的app.config进行加密实际意义并不大,因为无论如何,
客户机都可以通过运行aspnet_regiis -pdf 来对配置文件进行解密,从而暴露敏感信息。
对于web.config进行加密的意义也仅限于,当web.config文件不小心泄露时,
不会同时泄露敏感信息,如果恶意攻击者已经取得了在服务器上运行程序的权限,
那么同app.config一样,可以很容易通过通过运行aspnet_regiis -pdf 获取明文了。
还有,通过aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE”
控制对不同用户对密钥容器的访问权限,应该还可以进一步获取一些安全性,
比如可以控制某些用户即使登录到服务器上,也无法用aspnet_regiis -pdf对配置文件进行解密。

⑼ .net如何将页面生成pdf

using System;
using System.IO;
using System.Text;
using System.Collections;

namespace PDFGenerator
{

public class PDFGenerator
{
static float pageWidth = 594.0f;
static float pageDepth = 828.0f;
static float pageMargin = 30.0f;
static float fontSize = 20.0f;
static float leadSize = 10.0f;

static StreamWriter pPDF=new StreamWriter("E:\\myPDF.pdf");

static MemoryStream mPDF= new MemoryStream();

static void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer=null;
buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer,0,buffer.Length);
buffer=null;
}

static string xRefFormatting(long xValue)
{
string strMsg =xValue.ToString();
int iLen=strMsg.Length;
if (iLen<10)
{
StringBuilder s=new StringBuilder();
int i=10-iLen;
s.Append('0',i);
strMsg=s.ToString() + strMsg;
}
return strMsg;
}

static void Main(string[] args)
{
ArrayList xRefs=new ArrayList();
//Byte[] buffer=null;
float yPos =0f;
long streamStart=0;
long streamEnd=0;
long streamLen =0;
string strPDFMessage=null;
//PDF文档头信息
strPDFMessage="%PDF-1.1\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="1 0 obj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="<< /Length 2 0 R >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="stream\n";
ConvertToByteAndAddtoStream(strPDFMessage);
////////PDF文档描述
streamStart=mPDF.Length;
//字体
strPDFMessage="BT\n/F0 " + fontSize +" Tf\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage=pageMargin + " " + yPos +" Td\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= leadSize+" TL\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);

//实体内容
strPDFMessage= "(http://www.wenhui.org)Tj\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= "ET\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd=mPDF.Length;

streamLen=streamEnd-streamStart;
strPDFMessage= "endstream\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage="2 0 obj\n"+ streamLen + "\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="3 0 obj\n<</Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="4 0 obj\n<</Type /Pages /Count 1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Kids[\n3 0 R\n]\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Resources<</ProcSet[/PDF/Text]/Font<</F0 5 0 R>> >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]\n>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="5 0 obj\n<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

xRefs.Add(mPDF.Length);
strPDFMessage="6 0 obj\n<</Type/Catalog/Pages 4 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);

streamStart=mPDF.Length;
strPDFMessage="xref\n0 7\n0000000000 65535 f \n";
for(int i=0;i<xRefs.Count;i++)
{
strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n \n";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="trailer\n<<\n/Size "+ (xRefs.Count+1)+"\n/Root 6 0 R\n>>\n";
ConvertToByteAndAddtoStream(strPDFMessage);

strPDFMessage="startxref\n" + streamStart+"\n%%EOF\n";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);

mPDF.Close();
pPDF.Close();
}
}

另外:C#中生成PDF文件的方法挺多,可以使用iTextSharp控件,还有aspose的控件也可以。这些控件的功能都很强大,所以控件的大小也会很大

阅读全文

与aspnet典型模块pdf相关的资料

热点内容
dvd光盘存储汉子算法 浏览:755
苹果邮件无法连接服务器地址 浏览:958
phpffmpeg转码 浏览:669
长沙好玩的解压项目 浏览:140
专属学情分析报告是什么app 浏览:562
php工程部署 浏览:831
android全屏透明 浏览:730
阿里云服务器已开通怎么办 浏览:801
光遇为什么登录时服务器已满 浏览:300
PDF分析 浏览:483
h3c光纤全工半全工设置命令 浏览:140
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:681
如何取消命令方块指令 浏览:347
风翼app为什么进不去了 浏览:776
im4java压缩图片 浏览:360
数据查询网站源码 浏览:148
伊克塞尔文档怎么进行加密 浏览:888
app转账是什么 浏览:162