您的位置:首页 > 其它

在.NET 1.1下实现WebResource.axd

2007-07-27 16:21 190 查看
见到好多人在网上问起在.NET 1.1下如何实现类似.NET 2.0中的WebResource.axd,做了一下,以下是实现代码:

using System;
2using System.Collections;
3using System.Globalization;
4using System.IO;
5using System.Reflection;
6using System.Security.Permissions;
7using System.Text;
8using System.Text.RegularExpressions;
9using System.Web;
10using System.Web.Configuration;
11using System.Web.UI;
12using System.Web.Util;
13
14namespace XCtrlLib.WebCtrl
15
using System;
2using System.Web;
3
4namespace XCtrlLib.WebCtrl
5
using System;
2using System.Globalization;
3using System.IO;
4using System.Web;
5using System.Web.UI;
6
7namespace XCtrlLib.WebCtrl
8

using System;
2using System.Security.Permissions;
3using System.Web;
4
5namespace XCtrlLib.WebCtrl
6
using System;
2
3namespace XCtrlLib.WebCtrl
4
using System;
2using System.Collections;
3using System.Collections.Specialized;
4using System.ComponentModel;
5using System.Security.Permissions;
6using System.Text;
7using System.Web;
8using System.Web.UI;
9using System.Web.Handlers;
10using System.Web.Util;
11
12using System.Reflection;
13using System.Globalization;
14using System.IO;
15
16namespace XCtrlLib.WebCtrl
17

using System;
2using System.IO;
3using System.Text;
4using System.Web;
5using System.Security.Cryptography;
6
7namespace XCtrlLib.WebCtrl
8{
9 internal class Utils
{
Constructors#region Constructors

public Utils()
{
}

#endregion

private static byte[] DESKey = new byte[]{11,23,93,102,72,41,18,12};
private static byte[] DESIV = new byte[] {75,158,46,97,78,57,17,36};

/**//// <summary>
/// 加密方法
/// </summary>
/// <param name="strSource">待加密的串</param>
/// <returns>经过加密的串</returns>
public static string EncryptString(string strSource)
{
MemoryStream ms = new MemoryStream();
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
ICryptoTransform cryptoTransform = provider.CreateEncryptor(DESKey, DESIV);
CryptoStream cs = new CryptoStream(ms, cryptoTransform, CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cs);
sw.Write(strSource);
sw.Flush();
cs.FlushFinalBlock();
ms.Flush();
string strResult = Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

return strResult;
}

/**//// <summary>
/// 解密方法
/// </summary>
/// <param name="strSource">待解密的串</param>
/// <returns>经过解密的串</returns>
public static string DecryptString(string strSource)
{
byte[] input = Convert.FromBase64String(strSource);
MemoryStream ms = new MemoryStream(input);
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
ICryptoTransform cryptoTransform = provider.CreateDecryptor(DESKey, DESIV);
CryptoStream cs = new CryptoStream(ms, cryptoTransform, CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cs);
string strResult = sr.ReadToEnd();

return strResult;
}
}
}

应用时,在Web.config文件中作以下设置:
<httpHandlers>
<add verb="*" path="progress.ashx" type="XCtrlLib.WebCtrl.HttpUploadHandler, XCtrlLib"/>
<add verb="GET" path="WebResource.axd" type="XCtrlLib.WebCtrl.HttpWebResourceHandler, XCtrlLib" />
</httpHandlers>
即可象.NET 2.0中一样向客户端发送资源。
客户端调用:
ClientScriptManager mgr = new ClientScriptManager(this.Page);
string leftUrl = mgr.GetWebResourceUrl(typeof(XCtrlLib.WebCtrl.ResBag),"XCtrlLib.WebCtrl.Res.images.prev.gif");
this.Image1.ImageUrl = leftUrl;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: