zoukankan      html  css  js  c++  java
  • 解决方案设计:WebApi增加身份验证

    请求流程

      客户端-->发起请求-->请求加密-->

      服务端-->接收到请求参数-->解密-->处理请求-->处理结果加密-->

      客户端-->接收到处理结果-->解密

      结束-->

    服务端

      1、设计机构或应用表,机构表包含字段账户/密码。

      2、生成机构客户端公私钥

      3、生成服务端公钥证书,通过SDK工具makecert创建一个测试证书,例如:makecert -r -pe -n "CN=WCFCert" -ss My -sky exchange 创建成功之后,我们可以在证书管理器中看到我们的证书。

      4、业务处理服务

      5、响应推送

      6、接口文档编写

      7、代码示例

    客户端

      请求消息头信息

        1、设置Content-Type 资源内容的类型, 如:application/json;charset=UTF-8

        2、请求头部加鉴权信息Authentication,内容为使用base64编码的Basic username:password,如:Authorization: Basic dXNlcm5hbWUlM0FwYXNzd29yZA==

      请求消息体

        1、AES 密钥secretKey,内容等于RSA 公钥加密后的结果。

        2、业务参数content,内容等于业务参数经过AES 加密,并采用BASE64编码后的结果。AES 采用的算法是AES/ECB/PKCS5Padding。

          1、明文对象序列化为JSON后,AES 加密,BASE64编码

        3、版本version

        

    客户端代码示例:

    View Code

    工具类JsonHelper.cs

    View Code

    工具类RSAUtil.cs

    View Code

    工具类SHAUtil.cs

    View Code

    工具类TripleDESUtil.cs

    View Code
  • 相关阅读:
    Spring MVC视图层:thymeleaf vs. JSP
    Guava学习笔记:Google Guava 类库简介
    Hibernate与 MyBatis的比较
    SpringMVC与Struts2区别与比较总结
    Springmvc中@RequestParam传值中文乱码解决方案
    HQL和Criteria
    Struts2的select使用
    Spring AOP原理及拦截器
    hibernate:inverse、cascade,一对多、多对多详解
    mysql中索引利用情况(explain用法)
  • 原文地址:https://www.cnblogs.com/hofmann/p/12881891.html
Copyright © 2011-2022 走看看