ArrayList 轉為 Array

不須透過迴圈,直接將ArrayList專為Array

static void Main(string[] args)
{
	{
		ArrayList Lists = new ArrayList();
		Lists.Add("a");
		Lists.Add("b");
		Lists.Add("c");
		string[] s = (string[])Lists.ToArray(typeof(string));

		foreach (string item in s) {
                	Console.WriteLine(item);
            	}
	}
	{
		ArrayList Lists = new ArrayList();
		Lists.Add(1);
		Lists.Add(2);
		Lists.Add(3);
		int[] i = (int[])Lists.ToArray(Type.GetType("System.Int32"));

		foreach (int item in i) {
                	Console.WriteLine(item.ToString());
            	}
	}
}

 


  2011-11-29      ez      .NET
.NET Runtime 2.0 Error Reporting # 5000 例外錯誤處理

如果出現.NET Runtime 2.0 Error Reporting # 5000 就需要設定例外處理,才能夠抓取到Error資訊!

AppDomain.CurrentDomain.UnhandledException += new  UnhandledExceptionEventHandler(WorkerThreadHandler);

public void WorkerThreadHandler(object sender, UnhandledExceptionEventArgs args)
{
            if (!(args.ExceptionObject is ThreadAbortException))
            {
                Exception exc = args.ExceptionObject as Exception;
                MessageBox.Show(exc.ToString());
            }
}

  2011-11-29      ez      .NET
修復 ASP.NET 的 IIS 對應

如果要修復 ASP.NET 的 IIS 對應,請執行 Aspnet_regiis.exe 公用程式:

1.按一下 [開始],然後按一下 [執行]。

2.在 [開啟] 文字方塊中,輸入 cmd,然後按下 ENTER。

3.在命令提示字元中輸入下列命令,然後按下 ENTER:
"%windir%\Microsoft.NET\Framework\version\aspnet_regiis.exe" -i


  2014-10-02      ez      .NET 、   IIS
取得真實的IP

在ASP.NET上,通常會使用 Request.ServerVariables["REMOTE_ADDR"]; 來取得用戶端的IP。

但是有可能會遇到一個問題,當用戶端是透過代理伺服器連入時,則IP會變成是代理伺服器的,而並非是真正的用戶端IP。

所以,我們必須使用另外的方式取得用戶端的IP Request.ServerVariables["HTTP_X_FORWARDED_FOR"];


  2011-11-29      ez      .NET
防止XSS攻擊套件 Microsoft Anti-Cross Site Scripting Library

測試用的攻擊程式碼:

<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>

能在CSS 執行 JavaScript 是很多人不知道的開發技巧,但也是駭客最愛玩的 XSS ,不過這語法在新版的瀏覽器中都被移除了,目前已知支援這語法的瀏覽器有 IE6.0、IE7.0、Firefox 2.0、Opera 9.02...

套件下載:Microsoft Anti-Cross Site Scripting Library or AntiXSSV31

※請用3.1版本,4.0未包含此功能 測試範例:


  2012-06-04      ez      .NET
.Net Reflector 反解工具 ILSpy

如果程式碼搞丟或者前人沒有留下文件,就可以使用此軟體進行反組譯!

.NET Reflector 2011 2 結束提供免費版本,產生另外一個免費工具ILSpy!


  2011-11-29      ez      .NET
WMI 控制 Microsoft DNS Server

域名系統(英文:Domain Name System,縮寫:DNS)是因特網的一項服務。它作為將域名和IP地址相互映射的一個分布式數據庫,能夠使人更方便的訪問互聯網。DNS 使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。

開始時,域名的字符僅限於ASCII字符的一個子集。2008年,ICANN通過一項決議,允許使用其它語言作為互聯網頂級域名的字符。使用基於Punycode碼的IDNA系統,可以將Unicode字符串映射為有效的DNS字符集。因此,諸如「x.臺灣」這樣的域名可以在地址欄直接輸入,而不需要安裝插件。但是,由於英語的廣泛使用,使用其他語言字符作為域名會產生多種問題,例如難以輸入,難以在國際推廣等。

 

利用WMI 控制 Microsoft DNS Server,以下為範例程式:


  2011-11-29      ez      .NET
UDP 傳送與接收

TCP(Transmission Control Protocol)

UDP(User Datagram Protocol)

TCP這個協定最主要的特色在於傳輸資料時,需要驗證資 料,確保正確性。所以花的時間稍多一點。

而UDP這個協定最主要的特色在於傳輸資料時,不需要驗 證資料,不保證正確性,所以比較省時間。

而一般來說, 像是多媒體串流(streaming)就是使用這種協定。

Server端

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UdpServer
{
    public static void Main()
    {
        IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 8888);
        Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        newsock.Bind(ipep);
        Console.WriteLine("Waiting for a client...");
        IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
        EndPoint Remote = (EndPoint)(sender);
        while(true)
        {
            byte[] data = new byte[1024];
            int recv = newsock.ReceiveFrom(data, ref Remote);
            Console.WriteLine(Encoding.UTF8.GetString(data, 0, recv));
        }
    }
}

  2012-06-04      ez      .NET
二進位檔案存取

.NET Framework提供了BinaryReader與BinaryWriter用來處理二進位資料

讀取

FileStream myFile = File.Open(@"C:\a.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryReader myReader = new BinaryReader(myFile);
int dl = Convert.ToInt32(myFile.Length);
byte[] myData = myReader.ReadBytes(dl);
myReader.Close();
myFile.Close();

  2011-11-29      ez      .NET