小编pan*_*nox的帖子

我们为什么以及何时应该使用JSON Web令牌?

我认为jwt.io不能很好地解释为什么或何时使用jwt.它解释了可以考虑的其他事情,但决定是否使用它或者为什么它会派上用场并不重要.

我想为什么要使用JSON Web令牌?

身份验证: 将会话存储在服务之外并从无状态专业人员中获益(例如:升级)非常有用.

因此,JWT将不会实现远程会话解决方案,这将需要例如memcached基础架构,令牌管理器软件模块来创建,更新,使令牌无效.但它的缺点是会话信息将在客户端中暴露出来.

信息交换:共享您的秘密(或公钥),以便允许发件人签署令牌.为什么不使用https这个或证书?

所以我的问题是:我的假设是否正确?我很困惑何时需要使用jwt以及当前/实际解决方案的优势.


来自https://jwt.io/introduction/的其他信息

什么时候应该使用JSON Web令牌?

身份验证:这是使用JWT的最常见方案.一旦用户登录,每个后续请求将包括JWT,允许用户访问该令牌允许的路由,服务和资源.Single Sign On是一种现在广泛使用JWT的功能,因为它的开销很小,并且能够在不同的域中轻松使用.

信息交换:JSON Web令牌是在各方之间安全传输信息的好方法.因为JWT可以签名 - 例如,使用公钥/私钥对 - 您可以确定发件人是他们所说的人.此外,由于使用标头和有效负载计算签名,您还可以验证内容是否未被篡改.

JSON Web令牌如何工作?

Jtw-Diagram(某种序列图) Jwt图

我们为什么要使用JSON Web令牌?

让我们来谈谈JSON Web Tokens(JWT)与Simple Web Tokens(SWT)和Security Assertion Markup Language Tokens(SAML)相比的好处.

由于JSON比XML更简洁,因此在编码时它的大小也更小,使得JWT比SAML更紧凑.这使得JWT成为在HTML和HTTP环境中传递的不错选择.**不是jwt本身属性,它是json属性**

在安全方面,SWT只能使用HMAC算法通过共享密钥对称签名.但是,JWT和SAML令牌可以使用X.509证书形式的公钥/私钥对进行签名.与签名JSON的简单性相比,使用XML数字签名对XML进行签名而不会引入模糊的安全漏洞非常困难.**公钥/私钥对签名不新**

JSON解析器在大多数编程语言中很常见,因为它们直接映射到对象.相反,XML没有自然的文档到对象映射.这使得使用JWT比使用SAML断言更容易.

关于使用,JWT用于互联网规模.这突出了在多个平台(尤其是移动平台)上轻松进行JSON Web令牌的客户端处理.**不解释为何在互联网上使用它(在我看来是因为无状态服务器**

jwt

14
推荐指数
1
解决办法
2729
查看次数

单元测试服务和模拟自动生成的 WCF 客户端代理

我在服务中引用自动生成的 WCF 客户端。

//Autogenerated Service client
public partial class ServiceClient : 
    System.ServiceModel.ClientBase<IService>, IService 
{
    //...
}
//Autogenerated Interface Client
public interface IService {
    //...
}
Run Code Online (Sandbox Code Playgroud)

通过以下方式:

public MyService{

    public IExternalWsClientFactory ExternalWsClientFactory {get; set; }

    public void MyMethod(){
        using (var wsCliente = ExternalWsClientFactory.ServiceClient())
        { 
            //... 
        }
    }
}

public class ExternalWsClientFactory : IExternalWsClientFactory
{
    public ServiceClient ServiceClient()
    {
        var wsClient = new ServiceClient();
        return wsClient;
    }
}
Run Code Online (Sandbox Code Playgroud)

我引用该实现是因为我想使用该using语句在代码块末尾释放资源。而且因为IDisposable是在下面ClientBase而且界面不偏。

我的问题是我想模拟ServiceClient(我已经模拟了External WsClientFactory),但由于我使用了该实现,所以我很难做到这一点。 …

c# wcf unit-testing web-services mocking

4
推荐指数
1
解决办法
1438
查看次数

标签 统计

c# ×1

jwt ×1

mocking ×1

unit-testing ×1

wcf ×1

web-services ×1