• λ我爱Aspx >> Asp.Net >> 从COM组件调用.NET组件编程实战
  • 从COM组件调用.NET组件编程实战

  • :未知  Դ:非寒日志  :2007-4-21 0:45:31  ؼ:.net,com
  • 帮你找一个贴子:

    从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方法

    Ҷƪл˵?
  • һƪ在来三张
    һƪ乱画的一大堆哈哈