Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何使用Swashback在ASP.NET Core中为Swagger UI执行OAuth2授权_Asp.net Core_Swagger_Swashbuckle - Fatal编程技术网

Asp.net core 如何使用Swashback在ASP.NET Core中为Swagger UI执行OAuth2授权

Asp.net core 如何使用Swashback在ASP.NET Core中为Swagger UI执行OAuth2授权,asp.net-core,swagger,swashbuckle,Asp.net Core,Swagger,Swashbuckle,SwashBulk OAuth2授权和客户端凭据在DotNet Core 2中流动 我想设置隐式流,授权URL,不同的范围,默认选择的客户端id, 因此,单击“授权”后,它应该导航到不同的选项卡,打开AuthorizationUrl,让用户登录Swagger。所以,下次用户可以看到注销选项 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info() { Title = "", Des

SwashBulk OAuth2授权和客户端凭据在
DotNet Core 2中流动

我想设置隐式
授权URL
,不同的
范围
,默认选择的
客户端id
, 因此,单击“授权”后,它应该导航到不同的选项卡,打开
AuthorizationUrl
,让用户登录
Swagger
。所以,下次用户可以看到
注销
选项

services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new Info()
    {
        Title = "",
        Description = "All rights reserved."
    });


    c.AddSecurityDefinition("oauth2", new OAuth2Scheme
    {
        Flow = "implicit",
        AuthorizationUrl = "https://...",
        Scopes = new Dictionary<string, string> {
            { "", "Read/Write" }
        }

    });
});

您可以尝试以下步骤来启用隐式Oauth2流:

  • 更改Startup.cs并在ConfigureServices方法中替换先前添加的:

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
        c.AddSecurityDefinition("oauth2", new OAuth2Scheme
        {
            Type = "oauth2",
            Flow = "implicit",
            AuthorizationUrl = "https://login.microsoftonline.com/cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac/oauth2/authorize",
            Scopes = new Dictionary<string, string>
            {
                    { "accessApi", "Access read operations" },
    
            },
            TokenUrl = "https://login.microsoftonline.com/cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac/oauth2/token"
        });
    });
    
  • 转到招摇过市端点:并单击
    Authorize
    按钮

  • 您可以尝试以下步骤来启用隐式Oauth2流:

  • 更改Startup.cs并在ConfigureServices方法中替换先前添加的:

    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
        c.AddSecurityDefinition("oauth2", new OAuth2Scheme
        {
            Type = "oauth2",
            Flow = "implicit",
            AuthorizationUrl = "https://login.microsoftonline.com/cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac/oauth2/authorize",
            Scopes = new Dictionary<string, string>
            {
                    { "accessApi", "Access read operations" },
    
            },
            TokenUrl = "https://login.microsoftonline.com/cb1c3f2e-a2dd-4fde-bf8f-f75ab18b21ac/oauth2/token"
        });
    });
    
  • 转到招摇过市端点:并单击
    Authorize
    按钮

  • 什么应该是
    ClientId
    ,swagger不允许使用现有的
    appSettings。json
    的ClientId,它们是不同的客户端id是您在身份提供商(Oauth服务器)中注册的应用程序id,什么应该是
    ClientId
    ,swagger不允许使用现有的
    appSettings.json
    的ClientId,它们是不同的客户端id是您在身份提供程序(Oauth服务器)中注册的应用程序id
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
        c.OAuthClientId("19c73866-562f-482a-bafb-89d9fe9b0aaa");
        c.OAuthAppName("Swagger Api Calls");
    
    
    });