導航:首頁 > 文檔加密 > 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相關的資料

熱點內容
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:347
華為手機怎麼多選文件夾 瀏覽:679
如何取消命令方塊指令 瀏覽:345
風翼app為什麼進不去了 瀏覽:774
im4java壓縮圖片 瀏覽:358
數據查詢網站源碼 瀏覽:146
伊克塞爾文檔怎麼進行加密 瀏覽:886
app轉賬是什麼 瀏覽:159
php的基本語法 瀏覽:792
對外漢語pdf 瀏覽:516
如何用mamp本地web伺服器 瀏覽:869
如何加密自己js代碼 瀏覽:627
排列組合a與c的演算法 瀏覽:534
如何在文件夾中找到同名內容 瀏覽:786
有什麼app文字轉韓文配音 瀏覽:372
循環宏1命令 瀏覽:35
斐波那契數列矩陣演算法 瀏覽:674
公式保護後加密不了 瀏覽:82
java跳轉到jsp 瀏覽:819