.Net中Web增加加密狗管理
由于业务中最近需要使用到加密狗,增加对Web代码的管控,所以需要进行加密狗使用的研究
首先,对于没有接触使用过加密狗的人需要有个大致的认识,加密狗分为 MasterDog,
1.下载加密狗的开发套件,这个一般购买加密狗厂商会提供 (safenetftp%5Csuperdog%5CSuperDog-R-2.3.1.56436.iso)

安装完成之后会在看到如上图的一个菜单项
2.代码集成加密狗
代码中集成加密狗,使用中将加密狗集成到了过滤器中,针对请求检查加密狗的状态,加密狗提供了.net的开发sdk,包含如下的dll


a.自定义过滤器
public class dogFilter : FilterAttribute, IActionFilter
{ void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
}
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller.GetType() != typeof(ErrorController))
{
if (!DogValidate.JudgeDog())
filterContext.Result = new RedirectResult("/Error/NoAuthorized?Message=对不起,未插入软件狗,无权限操作系统!");
}
}
}
b.注册过滤器

c.DogValidata类的编码
public static class DogValidate
{
private static string m_vendorCodeString = "sRzyJecV/0ZD/lqK4JTnNTloxW9gCSVqCKUpibPV7nupz9d2XpFUPMQhAr9sZvGin+x06jdhKzIPbtCp4BkTsW+7Ukbu4xR1aU8TQ5is1tEIpkeoeQVtpZg7Sa3tfh9x6WKqRL7JcF8y9EP/zJbwNUhw2BpgFy0bGRe12koZncRwMsJow6bhQ2OeU1IXhGLwYFcuyncNDnSt9cKQKMzLLYm7/LbxkLwfEIOdXeHtiLaefnoFsrVgsYt631Qn6DeFkn9cOQKZyvqHNUZBrXjIlc/0cTdjDAhN3hZHpzFM0mBMkgaJs7hAgvfOiRfGi0GqnQ9cbdYMCktP9A2aIc0+NyGt3eCcejgiH57/hTQldU1DHAKhj6kizDSmvQMHISezzizXyEn2Sc+dblHPzBEzDybuQky44WnB/uHJmAfp5Wp0NFO6/hMIBfwOkhj3ZxG4hSn4lEuyVX9AmNRhJBbZMTUGjjvfXNFbzLHaPyxGt0Ya9l4M7T52H9ilw+OM6ZW77uWf+ufAEoiNxT4D0GsCDFDP7rxRhAFop7LXSPSuLadcDnrLXDjg+BiejczvTN0M4WQ/w7EqJVQo5kWAaTJeMrTPr8IkJ7xidHWskWnHPdXK6ZX8aIAC+8fQIxdyCltPppuiaHeGpcnxKrbo9/lhmmLQkIAlH+ND21h1SticidCKOfICrOeuOYYOBDvJJSUN2mqK6EyWUpp4z2FVzoKzkQnxCMOtaa4paA/Vaw8wAua/NIj19h7TT/I67tTwrYUkHdfIg8oyHEW/dfWs60ACxWixULSIVqlk3vPDTlJHttuSkUNucggJYxooSGGiyp3x8AEn6CjX0vmxiqYXwmPhlqkdqoh8ACdH3XoYMzNKo9fxkPardQZDJayMM9hxY5InwWYrL8hKY0l4fwJDnZR8nKdBNZAo6f+iVWWZK3mxYTKymVuUkvBEpHRhyuzSVWdEm6l9Q1frLZYBPrJX2j2ngw==";
public static string m_defaultScope = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?> " +
"<dogscope> " +
" <license_manager hostname =\"localhost\" /> " +
"</dogscope>";
public static bool JudgeDog(int num = )
{
try
{
DogFeature feature = DogFeature.FromFeature(num);
Dog dog = new Dog(feature);
DogStatus status = dog.Login(m_vendorCodeString, m_defaultScope);
if (status != DogStatus.StatusOk)
{
if (status == DogStatus.FeatureNotFound)
{
return JudgeDog();
}
return false;
}
}
catch (Exception e)
{
throw new Exception("狗驱动加载失败,请执行目录下的工具=》软件狗问题请执行我.exe");
}
return true;
}
}
上诉的代码中 m_vendorCodeString,m_defaultScope 购买加密狗时,sdk会提供,主要是通过dog.Login来进行验证,这里又涉及到加密狗的特征问题,每个加密狗会有多个特征,这里的DogFeature.FromFeature根据特征ID获取不同的特征来验证,这里我在使用的过程中只设置了一个特征,就是有效期,例如设置系统有效期为一年,一年后将不能使用,下面看看加密狗该如何配置特征,来配合程序检测
3.加密狗工具的使用,配置特征
加密狗使用中,有SuperDog Master(母狗)SuperDog(子狗)的区分,母狗用来编程子狗,子狗随软件一起给客户部署插入use即可

a.电脑上插入母狗以及子狗
b.选择加密狗工具包

b.选择授权管理工具


点击添加许可特征


上图配置的就是特征,包含特征ID,以及过程日期,这里需要配置允许远程桌面访问,否则远程连接会有问题,特征ID配合程序的 DogFeature.FromFeature(num);中num的值一致即可
然后编程加密狗,将特征写入加密狗


查看加密狗的状态,看编程的结果

软件发行过程中,如果IIS的应用程序池需要设置为 允许32位程序运行

.Net中Web增加加密狗管理的更多相关文章
- ASP.NET MVC系列:web.config中ConnectionString aspnet_iis加密与AppSettings独立文件
1. web.config中ConnectionString aspnet_iis加密 web.config路径:E:\Projects\Libing.Web\web.config <conne ...
- web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开
https://blog.csdn.net/zgsdzczh/article/details/79744838 web页在微信中访问增加遮罩层 右上角弹出在浏览器中打开 <style typ ...
- Rockey 4加密狗介绍
Rockey 4加密狗介绍 特点:该加密狗是单片机加密狗时代飞天公司的主力产品,R4一样继承了R2的硬件特征,具有全球唯一性硬件ID.R4内置了硬件随机数生成器,可以进行一些抗跟踪,或在硬件算法中参与 ...
- 磐石加密狗NT88管理层API
磐石加密狗NT88管理层API 直接贴代码了 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 ...
- Oracle中对列加密的方法
Oracle中对列加密的方法 2011-12-22 17:21:13 分类: Linux Oracle支持多种列加密方式: 1,透明数据加密(TDE):create table encrypt_col ...
- 对web.config加密,和解密码详细说明
可以使用受保护配置来加密 Web 应用程序配置文件(如 Web.config 文件)中的敏感信息(包括用户名和密码.数据库连接字符串和加密密钥).对配置信息进行加密后,即使攻击者获取了对配置文件的访问 ...
- Asp.net中web.config配置文件详解(一)
本文摘自Asp.net中web.config配置文件详解 web.config是一个XML文件,用来储存Asp.NET Web应用程序的配置信息,包括数据库连接字符.身份安全验证等,可以出现在Asp. ...
- web页面内容优化管理与性能技巧
来源:GBin1.com 回 想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪 存文件,里面包含的有视频或者图片 ...
- 使用USB Key(加密狗)实现身份认证
首先你需要去买一个加密狗设备,加密狗是外形酷似U盘的一种硬件设备! 这里我使用的坚石诚信公司的ET99产品 公司项目需要实现一个功能,就是客户使用加密狗登录, 客户不想输入任何密码之类的东西,只需要插 ...
随机推荐
- PDF加密无法做笔记
尝试打印PDF,若无法打印,可以利用PDFescape(http://www.pdfescape.com/) PDFescape是一个可以在线修改.做笔记的网站,但是在线使用有上传PDF大小限制(小于 ...
- 记录Window系统下myeclipes连接linux下mysql所出现的一个bug
记录myeclipes远程连接mysql所出现的一个bug 今天在玩框架hibernate时,出现一个非常费解的bug,话不多说,先看bug Access denied for user 'root' ...
- 走近webpack(2)--css打包及压缩js
前面的文章介绍了webpack的devServer以及多入口多出口文件的配置,咱们继续往下学. 在开始学习接下来的知识之前,我们先回顾一下,前文提到了webpack的简单配置方法,但是只详细说了下入口 ...
- poj1321 棋盘(dfs)
#include<iostream> #include<cstring> using namespace std; ]={},sum=; ][]; void dfs(int a ...
- centos下mongodb备份(dump)与还原(restore)
数据服务器,数据库采用mongodb数据库 安装:通过增加配置安装mongodb-org,版本为3.0.7,yum安装 yum install mongodb-org 数据备份与 ...
- Matlab绘图基础——绘制三维表面
%绘制三维表面 ------------------------------------- %1.绘制线框图:mesh:每一条曲线称为mesh line %首先利用meshgrid函数产生平面区域内的 ...
- 使用Listview控件显示数据
1.图像列表控件 ImageList是含有图像对象的集合,可以通过索引或关键字引用该集合中的每个对象. ImageList空间的属性 属性 说明 Images 存储在图像列表中的所有图像 ImageS ...
- 高级软件工程第四次作业(C++)
1 团队组成和选题情况说明 1.1 Git链接:https://github.com/WHUSE2017/C-team 1.2 团队组成: PM:齐爽爽(258) 小组成员:马帅(248),何健(26 ...
- 20155306 2017-2018-1《信息安全系统设计》第二周课堂测试以及myod的实现
20155306 2017-2018-1<信息安全系统设计>第二周课堂测试以及myod的实现 第二周课堂测验: (注:前两项在课堂已提交,在此不做详解) 第一项: 每个.c一个文件,每个. ...
- 关于Android 7.0(API24)相机的问题汇总
在开发Android项目的时候,我们会用到相机,有些时候只是开发一个普通的扫码,仅仅赋予一下 权限 就好了,但是有些时候是需要拍照和从相册中获取照片的.我们在Android 5.0以及5.0之前调用相 ...