using Dscf.Bpl.InformationAuditBpl;
using Dscf.Bpl.ProductBpl;
using Dscf.Global.CommonAduit;
using Dscf.Global.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using LitJson;
using Dscf.Client.InformationAuditWeb.App_Start;
using System.Configuration;
using System.Web.SessionState;
using Dscf.Bpl.UserBpl;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using System.Text;
using Org.BouncyCastle.Crypto.Encodings;
using Org.BouncyCastle.Crypto.Engines;
namespace Dscf.Client.InformationAuditWeb.Handler
{
/// <summary>
/// ZhiChengHandler 的摘要说明
/// </summary>
public class ZhiChengHandler : IHttpHandler, IReadOnlySessionState, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
string type = context.Request["type"];
context.Response.ContentType = "text/plain";
switch (type)
{
case "0"://查询显示
{
context.Response.Write(getUserinfo(context));
break;
}
case "1"://借款显示
{
context.Response.Write(Loadselect(context));
break;
}
}
}
/// <summary>
/// 查询人员身份信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public UserInfoModel getUserInfoModel(UserInfoModel model)
{
UserInfoModel userinfo = new UserInfoModel();
try
{
userinfo = UserInfoBpl.QueryObject(model);
return userinfo;
}
catch (Exception ex)
{
}
return userinfo;
}
/// <summary>
/// 返回结果
/// </summary>
/// <param name="url"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static string ResponseBind(string url, IDictionary<string, string> parameters)
{
SecurityUtils su = new SecurityUtils();//给值
string strReturn = su.ReturnActionFromXml(url, parameters);
//JObject jo = (JObject)JsonConvert.DeserializeObject(strReturn);
//string responsestr = jo["response"] != null ? jo["response"].ToString().Trim() : "";//执行结果
//JObject jo2 = (JObject)JsonConvert.DeserializeObject(responsestr);
//return jo2;
return strReturn;
}
/// <summary>
/// 获取个人信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public ResultMessage getUserinfo(HttpContext context)
{
try
{
int orderId;
if (int.TryParse(context.Request["Userid"], out orderId))
{
UserInfoModel userinfo = new UserInfoModel();
userinfo.UserId = Convert.ToInt32(context.Request["Userid"]);
userinfo = getUserInfoModel(userinfo);
if (userinfo != null)
{
return new ResultMessage(true, "成功", userinfo);
}
else
{
return new ResultMessage(false, "失败");
}
}
else
{
return new ResultMessage(false, "暂无数据!");
}
}
catch (Exception ex)
{
return new ResultMessage(false, ex.Message);
}
}
/// <summary>
/// 借款查询
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public ResultMessage Loadselect(HttpContext context)
{
try
{
int orderId;
if (int.TryParse(context.Request["Userid"], out orderId))
{
UserInfoModel userinfo = new UserInfoModel();
userinfo.UserId = Convert.ToInt32(context.Request["Userid"]);
userinfo = getUserInfoModel(userinfo);
if (userinfo != null)
{
//读取文件
using (var fileStream = System.IO.File.OpenText(context.Server.MapPath("/attached/publickey/ZC_PublicKey_V2.pem")))
{
var pemReader = new Org.BouncyCastle.OpenSsl.PemReader(fileStream);
var keyParameter = (Org.BouncyCastle.Crypto.AsymmetricKeyParameter)pemReader.ReadObject();
//userid
string input = "dingsheng_testusr";
byte[] testData = Encoding.UTF8.GetBytes(input);
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
decryptEngine.Init(true, keyParameter);
input = Convert.ToBase64String(decryptEngine.ProcessBlock(testData, 0, testData.Length));
//params
ZhichengLoanSerachModel ZhichengLoanSerachModel = new ZhichengLoanSerachModel();
ZhichengLoanSerachModel.name = userinfo.Name;
ZhichengLoanSerachModel.idType = "101";
ZhichengLoanSerachModel.idNo = userinfo.IDCard;
ZhichengLoanSerachModel.queryReason = "10";
//把对象序列化成json
SerializerHelper serializer = new SerializerHelper();
string param = JsonConvert.SerializeObject(ZhichengLoanSerachModel);
testData = Encoding.UTF8.GetBytes(param);
testData = new RC4Crypto().EncryptEx(testData, "bd3fe9f1bf134f50");
param = Convert.ToBase64String(testData);
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("userid", HttpUtility.UrlEncode(input));
parameters.Add("params", HttpUtility.UrlEncode(param));
//解析请求结果
SecurityUtils su = new SecurityUtils();
string _creditUrl = "http://www.zhichengcredit.com/CreditPortal/api/queryLoan/V2";
string result = su.ReturnActionFromXml(_creditUrl, parameters);
JObject jo = JObject.Parse(result);
String data = jo["data"].ToString();
var resultStr = new RC4Crypto().Decrypt(data, "bd3fe9f1bf134f50", CryptoBase.EncoderMode.Base64Encoder);
string json = HttpUtility.UrlDecode(resultStr);
var model = JsonConvert.DeserializeObject<ZhichengLoanSeachResultModel>(json);
return new ResultMessage(true, "成功", model);
}
// return new ResultMessage(true, "成功", userinfo);
}
else
{
return new ResultMessage(false, "失败");
}
}
else
{
return new ResultMessage(false, "暂无数据!");
}
}
catch (Exception ex)
{
return new ResultMessage(false, ex.Message);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
- Java Keytools 证书转换成Openssl 的PEM 文件或keytools 导出私钥文件
上一遍又说到Godaddy 生请证书流程与操作: 现因使用Incapsula 防护使用到https,在添加网站时需要自定义证书,其中需要上传私钥信息,因公钥是能过keytool 生成所以需要导出私钥信 ...
- iOS推送证书生成pem文件(详细步骤)
1.pem文件概述 pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,下面介绍一下pem文件的生成. 2.生成pem文件步骤 1.打开钥匙串,选择需要生成的推送 ...
- PEM文件和private.key文件生成IIS服务器所需的pfx文件(配置SSL用)
第一步:输入域名,点击"创建免费的SSL证书"按钮,如图 第二步:输入邮箱,点击创建,如图 创建成功后,需要进行dns验证,结果图如下: 第三步:在域名所在的云服务器上,添加域名解 ...
- 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)
问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- iOS推送证书转pem文件
iOS推送证书转 .pem文件. 推送证书转pem文件openssl x509 -in apns_miaobozhibo.cer -inform der -out apns_miaobozhibo.p ...
- php多线程操作同一文件-待续
同意文件操作同意文件的问题在于逻辑有些地方不合适,如果多个线程同时写入,在不加锁的情况下,可能导致得到结果不如意,为了安全,和脏读(数据库的词),应该使用排他锁,这就意味着每次只能被一个线程操作.其他 ...
- Java生成和操作Excel文件(转载)
Java生成和操作Excel文件 JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...
- 实战p12文件转pem文件
1.首先生成一个ssl的证书 选择app IDS 后实现下面这个(这里不详细说明怎么生成了) 点击Download按钮,我就下载Development的ssl证书,下载成功后,双击运行,会打开钥匙串程 ...
随机推荐
- (转)android平台phonegap框架实现原理
(原文)http://blog.csdn.net/wuruixn/article/details/7405175 android平台phonegap框架实现原理 分类: Android2012-03- ...
- 关于工伤事故索赔计算很好用的一款APP
关于工伤事故索赔计算很好用的一款APP.详细介绍工伤伤残等级评估 工伤计算器根据国家颁布<劳动能力鉴定 职工工伤与职业病致残等级>,通过关键字检索,快速评估工伤伤残等级. 软件说明: 1 ...
- Qt + FFmpeg 本地音频播放器
http://pan.baidu.com/s/1hqoYXrI
- Neo4j 两种索引Legacy Index与Schema Index区别
Legacy Indexes 在Neo4j 2.0版本之前,Legacy index被称作indexes.这个索引是通过外部图存储在外的Lucene实现,允许“节点”和“联系”以key:value键值 ...
- asp.net 前台通过Eval()绑定动态显示样式
1.a标签链接 <%#Eval("ConfigCode").ToString().ToLower() == "publishtext" ? "& ...
- MetaPhlAn 2:宏基因组进化分析
描述 MetaPhlAn是分析从物种水平分辨率宏基因组鸟枪法测序数据的微生物群落(细菌,古细菌,真核细胞和病毒)的组成的计算工具.从版本2.0,MetaPhlAn还能够确定具体的菌株(在将样品含有先前 ...
- Boot loader: Grub进阶[转]
Boot loader: Grub进阶 本文记录grub的一些进阶配置 关於核心功能当中的 vga 配置 事实上,你的 tty1~tty6 除了 80x24 的解析度外,还能够有其他解析度的支持喔!但 ...
- mac10.9+php5.5.15+brew0.9.5的安装
Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具. Mac 自带ruby 所以安装起来很方便,同时它也会自动把git ...
- 如何在linux sqlplus 下实现方向健和回退键操作而避免乱码
在window下的sqlplus可以通过箭头键,来回看历史命令,用起来非常的方便.但是在linux里就没有这么方面了,错了一个命令,我们必须重新敲一次,辛苦了手指头. 通过rlwrap包实现linux ...
- 调试技巧--Windows端口号是否被占用
调试技巧--Windows端口号是否被占用 一.端口概念 10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168. ...