使用clr 调用C#编写的dll中的方法的全解释
使用clr 调用C#编写的dll中的方法的全解释
1.数据库初始化:
将下面这段代码直接在运行就可以初始化数据库了
exec sp_configure 'show advanced options', '1';
go
reconfigure;
go
exec sp_configure 'clr enabled', '1'
go
reconfigure;
exec sp_configure 'show advanced options', '1';
go
ALTER DATABASE DB_Name set TRUSTWORTHY on;(打开数据库的TRUSTWORTHY 属性)
go
2.数据库添加程序集:
create assembly 程序集名字
from '程序集所存放的位置'
WITH permission_set = Safe;
3.创建数据库添加函数的映射
create function 函数名称
(
传入的参数 必须是 Nvarchar类型的 )
returns Nvarchar(1000)
as
external name 程序集名字.[程序集名.类名].方法名;
下面是我创建的用于加密的函数
USE [NjClient1]
GO
/****** Object: UserDefinedFunction [dbo].[jiami] Script Date: 2014/5/28 19:15:27 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[jiami](@明文 [nvarchar](1000))
RETURNS [nvarchar](1000) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [Des].[NjClient1.DES].[Encrypt]
4.调用函数进行加密
直接使用函数名括号内传入需要加密的字符串即可
SELECT dbo.jiemi(@参数)
解密过程同上加密过程
编写的C#代码中的一些注意事项
1.在需要让数据库调用的方法名前需要添加
[SqlFunction(DataAccess = DataAccessKind.None)]
同样的需要引入类库
using Microsoft.SqlServer.Server;
2.所有需要让数据库调用的方法都必须是静态方法static
3.生成dll所以用的.netframwork 版本不可以过高,建议使用2.0版本
加密方式:
这个加密需要使用数据库加载dll动态链接库创建程序集进行加密,动态链接库我已经生成好了,
你那把只需要加载动态链接库然后调用里面的加密方法就可以进行加密了。
我会给你一个dll文件,你只需要加载这个文件到程序集然后通过加载的程序集使用Encrypt方法既可以进行加密了,
传入参数为明文字符串,返回参数为密文字符串类型都为nvarchar(1000)类型
最新文章
- 完美解决 Linux 下 Sublime Text 中文输入
- Win10(win7) 安装vs2015(2012)出现ASP.NET 4.0/4.5 尚未在 Web 服务器上注册 下载这个补丁安装就可以了
- CSS 实现:父元素包含子元素,子元素垂直居中布局
- Knockout.js 初探
- Linux下安装MySQL步骤
- Android 播放声音
- Mongodb安装和配置
- docker运行dubbo-admin
- [JAVA] - 从 m 个元素中随机选中 n 个
- 静态成员函数与pthread_create,纯虚函数匹配使用实例
- Android 打造任意层级树形控件 考验你的数据结构和设计
- SqlServer如何获取存储过程的返回值
- mysql 备份报错mysqldump: [Warning] Using a password on the command line interface can be insecure.
- h5互动课件动画如何实现?如何快速开发h5互动课件动画
- 判断闰年(Java)
- yii2 getter
- Spring Cloud 入门教程(五): Ribbon实现客户端的负载均衡
- ESXi内虚拟机带快照与不带快照的情况下简单性能对比.
- div+css中height:auto !important; height:663px; min-height:663px !important;区别
- Mysql数据类型、约束、存储引擎
热门文章
- 在Ajax.ActionLink的OnBegin,onComplete等事件中使用this【解决办法】
- C#进阶之路(七)反射的应用
- spring源码学习之:项目公共配置项解决方案
- 洛谷 P2626 斐波那契数列(升级版)
- javascript:;与javascript:void(0)
- EL and JSTL(Jsp Standard Tag Libary)(转)
- 如何禁用 FastAdmin 双击编辑功能?
- css3作3D旋转视频展示
- mysql链接出现10060
- Ubuntu apt-get卸载小记