当前位置:  开发笔记 > 编程语言 > 正文

如何在asp.net mvc核心中编写Identity Server 4的集成测试

如何解决《如何在asp.netmvc核心中编写IdentityServer4的集成测试》经验,为你挑选了1个好方法。

我正在使用身份服务器4的web api.我不知道从哪里开始编写集成测试.我有一个登录控制器接收用户名和密码,用于ResourceOwnerPassword授权类型.以下是我的代码.

控制器.

[Route("Authentication/Login")]
public async Task WebApiLogin(string username, string password)
{
    var accessToken = await UserAccessToken.GenerateToken(username, password);
    return new JsonResult(accessToken);
}

用于生成令牌的类

public async Task GenerateToken(string username, string password)
{
    //discover endpoint for metadata
    var disco = await DiscoveryClient.GetAsync("http://localhost:5000");

    //request token
    var clientToken = new TokenClient(disco.TokenEndpoint, "client", "secret");
    //var tokenResponse = await clientToken.RequestClientCredentialsAsync("Payment");
    var tokenResponse = await clientToken.RequestResourceOwnerPasswordAsync(username, password, "IntegrapayAPI");

    if (tokenResponse.IsError)
    {
        //Error tokenResponse.Error
        return tokenResponse.Error;
    }
    return tokenResponse.Json.ToString();
}

IdentityServer Project启动类.

public void ConfigureServices(IServiceCollection services)
{
    services.AddIdentityServer()
        .AddTemporarySigningCredential()
        .AddInMemoryApiResources(Config.GetApiResources())
        .AddInMemoryClients(Config.GetClients());
    //.AddTestUsers(Config.GetUsers());

    services.AddTransient();

    // Add framework services.
    //services.AddMvc();
}

Espen Medbø.. 5

你可以看看这个答案:https://stackoverflow.com/a/39409789/147041 免责声明:我自己的问题,我的答案.它包含一个指向GitHub仓库的链接,其中集成测试是针对API设置的,但它当然也适用于MVC.本质上是使用内存中的IdentityServer充当您的令牌生成器和验证器.

除此之外,您不应将API与IdentityServer混合使用.使用IdentityServer生成令牌,然后您的API将再次验证身份服务器的令牌.

有很多好的样品可以帮助您入门.



1> Espen Medbø..:

你可以看看这个答案:https://stackoverflow.com/a/39409789/147041 免责声明:我自己的问题,我的答案.它包含一个指向GitHub仓库的链接,其中集成测试是针对API设置的,但它当然也适用于MVC.本质上是使用内存中的IdentityServer充当您的令牌生成器和验证器.

除此之外,您不应将API与IdentityServer混合使用.使用IdentityServer生成令牌,然后您的API将再次验证身份服务器的令牌.

有很多好的样品可以帮助您入门.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有