ASP中Connection对像封装dll解决方案

connection|封装|解决

  asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径。。。

  中午,突然灵感一发,“为什么不尝试用加密数据库?”,通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库!

  于是,开始了一步步既痛苦又刺激的旅程。vb三四年前用过,而且菜得不再菜,为了找思路,就上网搜,百度有时候也挺害人的,搜了一大堆误人子弟的东东出来,特别是那个vb程序里只放一个连接字符串,然后用asp创建组件,取出字串,然后连接的思路,没任何意思,一句respose.write 连接字串就出来。

  达到加密数据库的目的,链接字串绝对是不能显示的,所以我参考了龙卷风写的"使用组件封装数据库操作(二)"中的方法,设定一个conn的全局变量,然后打开数据库的函数返回的只有true跟false。更重要的一点就是封装rs的execute方法,将其写到dll里,具体操作如下:

  1.打开vb,创建一个activex dll工程,工程名称叫myconn,类模块是dbconn,然后写入以下代码:

Option Explicit
Dim rp As Response
Dim rq As Request
Dim ap As Application
Dim sr As Server
Dim sn As Session
Dim Conn As ADODB.Connection ''创建conn全局变量
Dim RS As ADODB.Recordset '' 创建全避变量rs

Public Sub OnStartPage(MyScriptingContext As ScriptingContext)
Set rp = MyScriptingContext.Response
Set rq = MyScriptingContext.Request
Set sr = MyScriptingContext.Server
Set ap = MyScriptingContext.Application
Set sn = MyScriptingContext.Session

End Sub

Public Sub OnEndPage()
Set rp = Nothing
Set rq = Nothing
Set sr = Nothing
Set ap = Nothing
Set sn = Nothing
End Sub

Public Function openConn()
Dim str As String
Set Conn = sr.CreateObject("ADODB.Connection")

str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sr.MapPath("/mssdatabase/dbtest.mdb") &";data password=123456789"
Conn.Open str
If Err.Number <> 0 Then ''就是在社里返回喔

openConn = False

Else

openConn = True

End If
End Function

Public Function execute(sql) As ADODB.Recordset ''创建一个execute的方法,返回为recordset对像
Set RS = New ADODB.Recordset
RS.CursorLocation = adUseClient

Call openConn ''这句得要加,好像在外部的asp中不能触发全局conn变量,不知为此??

RS.Open sql, Conn, 3, 3
Set execute = RS
End Function

  编译该工程时,切记引用(工程>引用)"Microsoft active server pages object library"和"microsoft activexX data object 2.6 library"两个库类(感觉像c#的using差不多一样),然后编译成dll(文件>生成myconn.dll),一般vb编译成dll都会在系统中自动注册,如果是ntsf分区,给该dll加个everyone 可读,执行权限,然后到asp里调用,实现代码如下:

<%
dim conn
dim dbLink

dbLink="2"

if dbLink="1" then ''如果代码在别的机器上运行就使用dll组件链接数据库,否则就使用本地链接
Set conn=Server.CreateObject("myconn.dbconn")
conn.openConn
else
set conn=Server.CreateObject("ADODB.CONNECTION")
DBPath = Server.MapPath("/mssdatabase/dbtest.mdb")

conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& DBPath
end if
%>

  由于两种链接方式都只是使用了一个conn对像,所以不用对其他代码进行大修改,还是比较方便,目前dll中的execute方法对select操作已经测试通过,还有insert、update、delete等方法有待完善。

  附件为myconn工程文件全部代码:点击这里下载源文件

时间: 2024-10-03 00:59:47

ASP中Connection对像封装dll解决方案的相关文章

解决ASP中Connection对像封装dll问题

     asp代码保密一直是令人头痛的问题,目前没有非常好的解决方案,无非用vb编译成dll,但工作量实在太大,于是一直苦苦寻求着另一种途径,本文详细介绍关于解决ASP中Connection对像封装dll问题的文章专题. 中午,突然灵感一发,"为什么不尝试用加密数据库?",通过对数据库设一个高强度的密码,然后用vb封装connection对像,将密码信息写在dll里,然后通过asp创建组件方式调用,就算人家拿了我的代码,也无法改动数据库! 于是,开始了一步步既痛苦又刺激的旅程.vb三

ASP中多文件同时上传解决方案

解决|上传 上传表单如下: 标题:   性别: 男 女 属于: 文学体育艺术其它 是否选定: 内容: 分类:  分类1分类2分类3分类4分类5             选取文件一:     选取文件二:     选取文件三:     选取文件四:     选取文件五:  ASP源代码: <HTML><BODY><TITLE>文件上传</TITLE><CENTER></CENTER>   <% Set Obj = Server.C

ASP 调用dll及封装dll实例_应用技巧

打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Object Library选择 3.填加代码如下: 复制代码 代码如下: 'Code Start '声明部分 Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyRequest As Request Private MyResponse As

ASP 调用dll及封装dll实例

打开VB6,新建ActiveX DLL 2.在工程引用中加入Microsoft Active Server Pages Object Library选择 3.填加代码如下: 复制代码 代码如下: 'Code Start '声明部分 Private MyScriptingContext As ScriptingContext Private MyApplication As Application Private MyRequest As Request Private MyResponse As

阿里西西原创-asp封装dll教程

阿里西西|教程|原创|asp封装 阿里西西原创视频教程下载地址:http://www.alixixi.com/Down/eBook/vb/2007/2007122192320.html 由本人第一次尝试制作的录像视频教程,由于电脑速度较慢,播放时间较慢,请谅解. 本录像讲解最基础的VB封装ASP代码生成DLL的制作教程,适合初级学习者参考.也是本人学习VB制作ASP组件的第一个尝试,录像基本成功. 用vb编写asp组件(dll)示例 下面,将演示如何使用vb制作asp的dll组件... 1. 启

在ASP中编写DLL的问题

问题 ActiveX DLL 可以用来保护代码的一些部分,因为作为开发人员我们知道,用ASP进行工作时,源代码控制是一个艰难而琐碎的过程.ActiveX DLL 是经过编译的代码,没有工程文件中的源代码就不能对其进行修改.这就给开发人员带来许多可能:开发自动操作公共程序的程序并将它们作为共享软件来分发,分发至少有一些源代码保护的ASP应用程序,不断开发自己的ASP程序指令,以在一个全方位多功能的结果中提高ASP的性能. 你所安装的第一个ActiveX DLL 文件将注册并安装Visual Bas

使用ASP中的VB ActiveX.dll文件

active|activex 没有人会在没有必要的情况下采用更加麻烦的方法来工作,除非是没有选择的余地.所以如果我要告诉你有一种简单的技术可以使你的ASP开发更加快速,并且更加高效率,你一定对此特别感兴趣.这一方法将从你的ASP页中的绝大部分business logic转移到一个Visual Basic ActiveX .dll以达到提高整个网页的性能. 使用ActiveX .dll的原因 在Visual Basic中建立一个.dll文件实际上是一个ActiveX对象.这种对象可以采用微软的组件

ASP网站中数据库被挂木马的解决方案_木马相关

本文我们详细介绍了ASP数据库被挂木马的详细解决方案之编程处理的方法,解决方案分为以下三步: 第一步: 为现有数据库做好备份. 第二步: 执行如下ASP文件,这样就可以去掉数据库当中的JS木马: 注:conn.asp自己去写了. '这里放入JS木马内容:请记得改为自己数据库中的JS木马内容. <!--#include file="conn.asp"--> <% Server.ScriptTimeOut=180 Set rstSchema = conn.OpenSche

asp中调用.net dll文件方法

1. 在.net Visual Studio 中新建一个Class项目. 2. 在项目中新添加一个类,代码如下:  代码如下 复制代码 using System; namespace ClassLibrary1 {    //定义接口,这点很重要 (此接口中的方法与COM组件中的方法一致)     public interface iClass1     {         string   test()   ;     }     public class Class1 : iClass1