『壹』 怎樣在web.config中配置這些參數
web.config
Web配置文件(*.config)編輯本段認識Web.config文件
Web.config文件是一個XML文本文件,它用來儲存 ASP.NET Web 應用程序的配置信息(如最常用的設置ASP.NET Web 應用程序的身份驗證方式),它可以出現在應用程序的每一個目錄中。當你通過VB.NET新建一個Web應用程序後,默認情況下會在根目錄自動創建一個默認的 Web.config文件,包括默認的配置設置,所有的子目錄都繼承它的配置設置。如果你想修改子目錄的配置設置,你可以在該子目錄下新建一個Web.config文件。它可以提供除從父目錄繼承的配置信息以外的配置信息,也可以重寫或修改父目錄中定義的設置。 在運行時對Web.config文件的修改不需要重啟服務就可以生效(註:<processModel> 節例外)。當然Web.config文件是可以擴展的。你可以自定義新配置參數並編寫配置節處理程序以對它們進行處理。編輯本段web.config配置文件
(默認的配置設置)以下所有的代碼都應該位於 <configuration> <system.web> 和 </system.web> </configuration> 之間,出於學習的目的下面的示例都省略了這段XML標記 1、<authentication> 節 作用:配置 ASP.NET 身份驗證支持(為Windows、Forms、PassPort、None四種)。該元素只能在計算機、站點或應用程序級別聲明。<authentication> 元素必需與</autherization> 節配合使用。 示例: 以下示例為基於窗體(Forms)的身份驗證配置站點,當沒有登陸的用戶訪問需要身份驗證的網頁,網頁自動跳轉到登陸網頁。 <authentication mode="Forms" > <forms loginUrl="logon.aspx" name=".FormsAuthCookie"/> </authentication> 其中元素loginUrl表示登陸網頁的名稱,name表示Cookie名稱 2、<authorization> 節 作用:控制對 URL 資源的客戶端訪問(如允許匿名用戶訪問)。此元素可以在任何級別(計算機、站點、應用程序、子目錄或頁)上聲明。必需與</authentication> 節配合使用。 示例:以下示例禁止匿名用戶的訪問 <authorization> <deny users="?"/> </authorization> 註:你可以使用user.identity.name來獲取已經過驗證的當前的用戶名;可以使用 web.Security.FormsAuthentication.RedirectFromLoginPage方法將已驗證的用戶重定向到用戶剛才請求的頁面.具體的實例請參考: Forms驗證:http://www.knowsky.com/343322.html 3、<compilation>節 作用:配置 ASP.NET 使用的所有編譯設置。默認的debug屬性為「False」.在程序編譯完成交付使用之後應將其設為"True"(Web.config文件中有詳細說明,此處省略示例) 4、<customErrors> 作用:為 ASP.NET 應用程序提供有關自定義錯誤信息的信息。它不適用於 XML Web services 中發生的錯誤。 示例:當發生錯誤時,將網頁跳轉到自定義的錯誤頁面。 <customErrors defaultRedirect="ErrorPage.aspx" mode="RemoteOnly"> </customErrors> 其中元素defaultRedirect表示自定義的錯誤網頁的名稱。mode元素表示:對不在本地 Web 伺服器上運行的用戶顯示自定義(友好的)信息。 5、<httpRuntime>節 作用:配置 ASP.NET HTTP 運行庫設置。該節可以在計算機、站點、應用程序和子目錄級別聲明。 示例:控制用戶上傳文件最大為4M,最長時間為60秒,最多請求數為100 <httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/> 6、 <pages> 作用:標識特定於頁的配置設置(如是否啟用會話狀態、視圖狀態,是否檢測用戶的輸入等)。<pages>可以在計算機、站點、應用程序和子目錄級別聲明。 示例:不檢測用戶在瀏覽器輸入的內容中是否存在潛在的危險數據(註:該項默認是檢測,如果你使用了不檢測,一要對用戶的輸入進行編碼或驗證),在從客戶端回發頁時將檢查加密的視圖狀態,以驗證視圖狀態是否已在客戶端被篡改。(註:該項默認是不驗證) <pages buffer="true" enableViewStateMac="true" validateRequest="false"/> 7、<sessionState> 作用:為當前應用程序配置會話狀態設置(如設置是否啟用會話狀態,會話狀態保存位置)。 示例: <sessionState mode="InProc" cookieless="true" timeout="20"/> </sessionState> 註: mode="InProc"表示:在本地儲存會話狀態(你也可以選擇儲存在遠程伺服器或SAL伺服器中或不啟用會話狀態) cookieless="true"表示:如果用戶瀏覽器不支持Cookie時啟用會話狀態(默認為False) timeout="20"表示:會話可以處於空閑狀態的分鍾數 8、<trace> 作用:配置 ASP.NET 跟蹤服務,主要用來程序測試判斷哪裡出錯。 示例:以下為Web.config中的默認配置: <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /> 註: enabled="false"表示不啟用跟蹤;requestLimit="10"表示指定在伺服器上存儲的跟蹤請求的數目 pageOutput="false"表示只能通過跟蹤實用工具訪問跟蹤輸出; traceMode="SortByTime"表示以處理跟蹤的順序來顯示跟蹤信息 localOnly="true" 表示跟蹤查看器 (trace.axd) 只用於宿主 Web 伺服器編輯本段自定義Web.config文件配置節
自定義Web.config文件配置節過程分為兩步。 一是在在配置文件頂部 <configSections> 和 </configSections>標記之間聲明配置節的名稱和處理該節中配置數據的 .NET Framework 類的名稱。 二是在 <configSections> 區域之後為聲明的節做實際的配置設置。 示例:創建一個節存儲資料庫連接字元串 <configuration> <configSections> <section name="appSettings" type="System.Configuration.NameValueFileSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </configSections> <appSettings> <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/> </appSettings> <system.web> ...... </system.web> </configuration>編輯本段訪問Web.config文件
你可以通過使用ConfigurationSettings.AppSettings 靜態字元串集合來訪問 Web.config 文件示例:獲取上面例子中建立的連接字元串。 vb.net Dim sconstr As String = System.Configuration.ConfigurationManager.AppSettings("ConnectionString") c# ConnectionString string=System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];編輯本段創建Web.config文件
1.在「解決方案資源管理器」中,單擊「刷新」圖標以確認應用程序還沒有 Web.config 文件。 如果已使用網站管理工具或某些其他方式來配置應用程序,則可能已自動創建了 Web.config 文件。單擊「刷新」更新文件列表。 2.在「解決方案資源管理器」中,右擊網站名稱,然後單擊「添加新項」。 3.在「模板」窗口中,單擊「Web 配置文件」。 「名稱」文本框中的文件名應為 Web.config。可以為該文件提供其他名稱,不過這是默認名稱。.config 文件擴展名可防止 ASP.NET 下載相應文件。 4.單擊「添加」創建該文件,然後將其打開進行編輯。 該文件包含本主題後面「示例」部分中顯示的代碼,並具有一些初始默認值。應用程序從 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目錄下的 Machine.config 和 Web.config 文件繼承所有配置設置,但在此處看不到這些默認設置。如果要重寫繼承的默認設置或添加 httpHandlers 元素(ASP.NET 設置架構) 等集合元素,則只需創建應用程序級別和目錄級別的 Web.config 文件。 若要查看當前應用程序的所有配置設置,可以運行主題如何:以編程方式查看繼承的配置設置和本地配置設置中包含的代碼。也可以查看 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目錄下的 Machine.config.comments 或 Web.config.comments 文件(這兩個文件也包含有用的注釋),但這兩個文件將不會包含所有運行時設置,請參見如何:以編程方式查看繼承的配置設置和本地配置設置。 5.如果更改了 Web.config 文件,則保存該文件。 保存 Web.config 文件會重新啟動應用程序。也可以選擇使用單個節元素的 configSource 屬性指向某個輔助配置文件,更改輔助配置文件不會導致應用程序重新啟動。有關更多信息,請參見節元素所繼承的常規屬性中的 configSource。
『貳』 VC的控制台程序,如何獲取輸入參數和環境變數
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) 這是帶MFC功能的控制台程序主函數聲明,其中argc是輸入參數個數;argv[]是參數字元串數組;envp[]是環境變數字元串數組,下面是取得和顯示他們的代碼: //注意:必須設置此項才能輸出寬字元串 _tsetlocale(LC_ALL, _T("chs")); _tprintf(_T("參數: %d 個\n"),argc);//顯示參數個數 _tprintf(_T("\n"));//換行 //顯示所有參數 for (int i=0; i<argc; ++i) { _tprintf(_T("輸入參數 [%d] = [%s]\n"), i, argv[i]); } _tprintf(_T("\n"));//換行 //顯示環境變數 for (int i=0; i<argc; ++i) { _tprintf(_T("環境變數 [%d] = [%s]\n"), i, envp[i]); } _tsystem(_T("pause"));//使DOS窗口暫停,不馬上退出
『叄』 用socket編寫web瀏覽器如何實現查看歷史記錄函數啊(VC++)
-- win API socket
本文所談到的Socket函數如果沒有特別說明,都是指的Windows Socket API。
一、WSAStartup函數
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);
使用Socket的程序在使用Socket之前必須調用WSAStartup函數。該函數的第一個參數指明程序請求使用的Socket版本,其中高位位元組指明副版本、低位位元組指明主版本;操作系統利用第二個參數返回請求的Socket的版本信息。當一個應用程序調用WSAStartup函數時,操作系統根據請求的Socket版本來搜索相應的Socket庫,然後綁定找到的Socket庫到該應用程序中。以後應用程序就可以調用所請求的Socket庫中的其它Socket函數了。該函數執行成功後返回0。
例:假如一個程序要使用2.1版本的Socket,那麼程序代碼如下
wVersionRequested = MAKEWORD( 2, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
二、WSACleanup函數
int WSACleanup (void);
應用程序在完成對請求的Socket庫的使用後,要調用WSACleanup函數來解除與Socket庫的綁定並且釋放Socket庫所佔用的系統資源。
三、socket函數
SOCKET socket(
int af,
int type,
int protocol
);
應用程序調用socket函數來創建一個能夠進行網路通信的套接字。第一個參數指定應用程序使用的通信協議的協議族,對於TCP/IP協議族,該參數置PF_INET;第二個參數指定要創建的套接字類型,流套接字類型為SOCK_STREAM、數據報套接字類型為SOCK_DGRAM;第三個參數指定應用程序所使用的通信協議。該函數如果調用成功就返回新創建的套接字的描述符,如果失敗就返回INVALID_SOCKET。套接字描述符是一個整數類型的值。每個進程的進程空間里都有一個套接字描述符表,該表中存放著套接字描述符和套接字數據結構的對應關系。該表中有一個欄位存放新創建的套接字的描述符,另一個欄位存放套接字數據結構的地址,因此根據套接字描述符就可以找到其對應的套接字數據結構。每個進程在自己的進程空間里都有一個套接字描述符表但是套接字數據結構都是在操作系統的內核緩沖里。下面是一個創建流套接字的例子:
struct protoent *ppe;
ppe=getprotobyname("tcp");
SOCKET ListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);
四、closesocket函數
int closesocket(
SOCKET s
);
closesocket函數用來關閉一個描述符為s套接字。由於每個進程中都有一個套接字描述符表,表中的每個套接字描述符都對應了一個位於操作系統緩沖區中的套接字數據結構,因此有可能有幾個套接字描述符指向同一個套接字數據結構。套接字數據結構中專門有一個欄位存放該結構的被引用次數,即有多少個套接字描述符指向該結構。當調用closesocket函數時,操作系統先檢查套接字數據結構中的該欄位的值,如果為1,就表明只有一個套接字描述符指向它,因此操作系統就先把s在套接字描述符表中對應的那條表項清除,並且釋放s對應的套接字數據結構;如果該欄位大於1,那麼操作系統僅僅清除s在套接字描述符表中的對應表項,並且把s對應的套接字數據結構的引用次數減1。
closesocket函數如果執行成功就返回0,否則返回SOCKET_ERROR。
五、send函數
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);
不論是客戶還是伺服器應用程序都用send函數來向TCP連接的另一端發送數據。客戶程序一般用send函數向伺服器發送請求,而伺服器則通常用send函數來向客戶程序發送應答。該函數的第一個參數指定發送端套接字描述符;第二個參數指明一個存放應用程序要發送數據的緩沖區;第三個參數指明實際要發送的數據的位元組數;第四個參數一般置0。這里只描述同步Socket的send函數的執行流程。當調用該函數時,send先比較待發送數據的長度len和套接字s的發送緩沖區的長度,如果len大於s的發送緩沖區的長度,該函數返回SOCKET_ERROR;如果len小於或者等於s的發送緩沖區的長度,那麼send先檢查協議是否正在發送s的發送緩沖中的數據,如果是就等待協議把數據發送完,如果協議還沒有開始發送s的發送緩沖中的數據或者s的發送緩沖中沒有數據,那麼send就比較s的發送緩沖區的剩餘空間和len,如果len大於剩餘空間大小send就一直等待協議把s的發送緩沖中的數據發送完,如果len小於剩餘空間大小send就僅僅把buf中的數據到剩餘空間里(注意並不是send把s的發送緩沖中的數據傳到連接的另一端的,而是協議傳的,send僅僅是把buf中的數據到s的發送緩沖區的剩餘空間里)。如果send函數數據成功,就返回實際的位元組數,如果send在數據時出現錯誤,那麼send就返回SOCKET_ERROR;如果send在等待協議傳送數據時網路斷開的話,那麼send函數也返回SOCKET_ERROR。要注意send函數把buf中的數據成功到s的發送緩沖的剩餘空間里後它就返回了,但是此時這些數據並不一定馬上被傳到連接的另一端。如果協議在後續的傳送過程中出現網路錯誤的話,那麼下一個Socket函數就會返回SOCKET_ERROR。(每一個除send外的Socket函數在執行的最開始總要先等待套接字的發送緩沖中的數據被協議傳送完畢才能繼續,如果在等待時出現網路錯誤,那麼該Socket函數就返回SOCKET_ERROR)
注意:在Unix系統下,如果send在等待協議傳送數據時網路斷開的話,調用send的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。
六、recv函數
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);
不論是客戶還是伺服器應用程序都用recv函數從TCP連接的另一端接收數據。該函數的第一個參數指定接收端套接字描述符;第二個參數指明一個緩沖區,該緩沖區用來存放recv函數接收到的數據;第三個參數指明buf的長度;第四個參數一般置0。這里只描述同步Socket的recv函數的執行流程。當應用程序調用recv函數時,recv先等待s的發送緩沖中的數據被協議傳送完畢,如果協議在傳送s的發送緩沖中的數據時出現網路錯誤,那麼recv函數返回SOCKET_ERROR,如果s的發送緩沖中沒有數據或者數據被協議成功發送完畢後,recv先檢查套接字s的接收緩沖區,如果s接收緩沖區中沒有數據或者協議正在接收數據,那麼recv就一直等待,只到協議把數據接收完畢。當協議把數據接收完畢,recv函數就把s的接收緩沖中的數據到buf中(注意協議接收到的數據可能大於buf的長度,所以在這種情況下要調用幾次recv函數才能把s的接收緩沖中的數據完。recv函數僅僅是數據,真正的接收數據是協議來完成的),recv函數返回其實際的位元組數。如果recv在時出錯,那麼它返回SOCKET_ERROR;如果recv函數在等待協議接收數據時網路中斷了,那麼它返回0。
注意:在Unix系統下,如果recv函數在等待協議接收數據時網路斷開了,那麼調用recv的進程會接收到一個SIGPIPE信號,進程對該信號的默認處理是進程終止。
七、bind函數
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
當創建了一個Socket以後,套接字數據結構中有一個默認的IP地址和默認的埠號。一個服務程序必須調用bind函數來給其綁定一個IP地址和一個特定的埠號。客戶程序一般不必調用bind函數來為其Socket綁定IP地址和斷口號。該函數的第一個參數指定待綁定的Socket描述符;第二個參數指定一個sockaddr結構,該結構是這樣定義的:
struct sockaddr {
u_short sa_family;
char sa_data[14];
};
sa_family指定地址族,對於TCP/IP協議族的套接字,給其置AF_INET。當對TCP/IP協議族的套接字進行綁定時,我們通常使用另一個地址結構:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
其中sin_family置AF_INET;sin_port指明埠號;sin_addr結構體中只有一個唯一的欄位s_addr,表示IP地址,該欄位是一個整數,一般用函數inet_addr()把字元串形式的IP地址轉換成unsigned long型的整數值後再置給s_addr。有的伺服器是多宿主機,至少有兩個網卡,那麼運行在這樣的伺服器上的服務程序在為其Socket綁定IP地址時可以把htonl(INADDR_ANY)置給s_addr,這樣做的好處是不論哪個網段上的客戶程序都能與該服務程序通信;如果只給運行在多宿主機上的服務程序的Socket綁定一個固定的IP地址,那麼就只有與該IP地址處於同一個網段上的客戶程序才能與該服務程序通信。我們用0來填充sin_zero數組,目的是讓sockaddr_in結構的大小與sockaddr結構的大小一致。下面是一個bind函數調用的例子:
struct sockaddr_in saddr;
saddr.sin_family = AF_INET;
saddr.sin_port = htons(8888);
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
bind(ListenSocket,(struct sockaddr *)&saddr,sizeof(saddr));
八、listen函數
int listen( SOCKET s, int backlog );
服務程序可以調用listen函數使其流套接字s處於監聽狀態。處於監聽狀態的流套接字s將維護一個客戶連接請求隊列,該隊列最多容納backlog個客戶連接請求。假如該函數執行成功,則返回0;如果執行失敗,則返回SOCKET_ERROR。
九、accept函數
SOCKET accept(
SOCKET s,
struct sockaddr FAR *addr,
int FAR *addrlen
);
服務程序調用accept函數從處於監聽狀態的流套接字s的客戶連接請求隊列中取出排在最前的一個客戶請求,並且創建一個新的套接字來與客戶套接字創建連接通道,如果連接成功,就返回新創建的套接字的描述符,以後與客戶套接字交換數據的是新創建的套接字;如果失敗就返回INVALID_SOCKET。該函數的第一個參數指定處於監聽狀態的流套接字;操作系統利用第二個參數來返回新創建的套接字的地址結構;操作系統利用第三個參數來返回新創建的套接字的地址結構的長度。下面是一個調用accept的例子:
struct sockaddr_in ServerSocketAddr;
int addrlen;
addrlen=sizeof(ServerSocketAddr);
ServerSocket=accept(ListenSocket,(struct sockaddr *)&ServerSocketAddr,&addrlen);
十、connect函數
int connect(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
客戶程序調用connect函數來使客戶Socket s與監聽於name所指定的計算機的特定埠上的服務Socket進行連接。如果連接成功,connect返回0;如果失敗則返回SOCKET_ERROR。下面是一個例子:
struct sockaddr_in daddr;
memset((void *)&daddr,0,sizeof(daddr));
daddr.sin_family=AF_INET;
daddr.sin_port=htons(8888);
daddr.sin_addr.s_addr=inet_addr("133.197.22.4");
connect(ClientSocket,(struct sockaddr *)&daddr,sizeof(daddr));參考資料:http://..com/question/2539502.html#reply
『肆』 C#中如何得到webbrowser里url中的參數
窗體上放一個webbrowser ,一個button
拷貝如下代碼
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.abc.com/news.aspx?class=111111&cid=22222222");
}
private void button1_Click(object sender, EventArgs e)
{
string url = webBrowser1.Url.Query.ToString(); //獲取地址的參數
url = url.Replace("?", ""); //去除第一個參數的問號
string[] urlParam = url.Split('&'); //根據參數間的 & 號獲取參數數組
foreach (string s in urlParam)
{
string[] val = s.Split('='); //將參數名與參數值賦值給數組
MessageBox.Show("參數名稱為:" + val[0] + " 參數值為:" + val[1]);
}
}
}
}
『伍』 怎麼在VC++中自動顯示函數的參數信息
Ctrl + shift + space:必須至少要有函數左括弧,且編輯游標在左括弧的右邊才會有效。
『陸』 如何查看封包,以及如何填寫WebBrowser1.Navigatec參數POST提交
下面是網上找的POST提交表單的源代碼---------------------------
Private Sub Button1_Click()
Dim URL As String
Dim Flags As Long
Dim TargetFrame As String
Dim PostData() As Byte
Dim Headers As String
URL = " ?rru=inbox" ' A URL that will accept a POST
Flags = 0
TargetFrame = ""
PostData = "true,false,true,{" & "00000000-0000-0000-0000-000000000005" & ",0,0,Date,false,null,null,1,1,false,null,-1,-1,Off},false,null"
' VB creates a Unicode string by default so we need to
' convert it back to Single byte character set.
PostData = StrConv(PostData, vbFromUnicode)
Headers = "Content-Type: application/x-www-form-urlencoded" & _
vbCrLf
WebBrowser1.Navigate URL, Flags, TargetFrame, PostData, Headers
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate " "
End Sub
『柒』 求高手!vc++6.0中的參數和怎麼看什麼意思
寄存器窗口顯示的當前某些寄存器的值,想理解這些寄存器的意義最好學學匯編,是用16進制顯示的。
堆棧寄存器窗口顯示的是正在執行的函數,因為操作本線程的堆棧的是當前執行的函數,函數執行完成後堆棧變數會被釋放,實現堆棧平衡。後面Line 後面跟的數字是當然執行到此函數的第幾行,如上執行到main函數的第37行,mainCRTStartup函數第206行,可以判斷是從mainCRTStartup函數第206行轉到main函數的,如果前面不是函數名,後圖後三行,嘆號前面的是代碼所在模塊,後面是函數地址。
『捌』 如何查看.Net FrameWork,VC++ 等安裝包的啟動參數
如何查看.Net FrameWork,VC++ 等安裝包的啟動參數
第一步、打開控制面板,在大圖標查看方式下,點擊「程序和功能」
第二步、在程序和功能界面,點擊左側「打開或關閉Windows功能」
第三步、在打開或關閉Windows功能界面,通過拖動滾動條的方式,找到含有Microsoft .Net Framework字樣的內容,後面的數字就您您電腦的.Net Framework版本