我爱Aspx >> Asp.Net >> 从COM组件调用.NET组件编程实战帮你找一个贴子:
从COM组件调用.NET组件编程实战
作者:朱学武
在我的编程实践中,需要从.NET的Web Form页面传递加密的字符串信息(如用户名和密码等)到ASP页面,然后在该页面对该加密字符串进行解密。如果传递的不是加密串,通过GET或POST的方式就可以直接传递并在ASP页面中接收,但问题是在.NET的Web Form页面中加了密的字符串如何才能在ASP中进行解密呢?这主要由于ASP并不能直接访问由.NET提供的托管类和组件。这时我们就只能借助于COM组件来实现了,通过COM的互操作我们可通过.NET生成COM组件,然后在ASP页面中访问该COM组件就可以了。
本文实现的是将加密的用户名与密码从.aspx页面传递到.asp页面,下面就来介绍这些操作的具体步骤:
一、制作具有加密、解密字符串的.NET程序集(VS.NET类库工程)
这个程序集将会变成COM组件,使用DES对称加密代码,可以加密码,可以加密解密,支持中文!
//文件名:StringCrypt.cs
using System;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.IO;
using System.Text;
namespace jonson
{
// 首先建立接口,这个是Com必须使用的
[Guid("BF6F9C17-37FA-4ad9-9601-C11AD5316F2C")]
public interface IEncrypt
{
string Encrypt(string pToEncrypt,string sKey);
string Decrypt(string pToDecrypt,string sKey);
}
//接口的实现
[Guid("3FBDBB63-3C36-4602-89E1-73EDB0F167D0")]
public class StringCrypt : IEncrypt
{
// 加密的方法
public string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//把字符串放到byte数组中
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
//byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt);
//建立加密对象的密钥和偏移量
//原文使用ASCIIEncoding.ASCII方法的GetBytes方法
Ҷƪл˵?
在C#中使用COM+实现事务控制[04-21]
缓存 ASP.NET 页的某些部分[04-21]
COM,COM+区别[04-21]
使用C#开发COM+组件[04-21]
C# 注册COM+组件步骤[04-21]
c#教程第一讲 开始.net探索之旅[04-21]
.net课件之多线程[04-21]
五子棋.NET源码下载[04-21]
跟我一起学.net资料(二)[04-21]
跟我一起学习.net资料(一)[04-21]
乱画的一大堆哈哈[04-21]
我住的那栋楼下[04-21]
雨中漫步—瞬间的浪漫[04-21]
一辈子的幸福[04-21]
感悟[04-21]
鱼和水,我和你……[04-21]
男朋友与男性好友[04-21]
当我们的心流连在午夜[04-21]
放手的幸福[04-21]
幸福的人不看结局[04-21]