IdentityServer4错误,此客户端不允许使用Offline_access



我已经在内存配置中使用助手类创建了

public class InMemoryConfiguration
{
    public static IEnumerable<ApiResource> ApiResources()
    {
        return new[] {
                new ApiResource("socialnetwork", "Social Network")
            };
    }
    public static IEnumerable<Client> Clients()
    {
        return new[] {
                new Client
                {
                    ClientId = "socialnetwork",
                    ClientName = "SocialNetwork",
                    ClientSecrets = new [] { new Secret("secret".Sha256()) },
                     //Flow = Flows.ResourceOwner,
                    AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
                    AllowedScopes = new [] { "socialnetwork", StandardScopes.OfflineAccess, StandardScopes.OpenId, StandardScopes.OfflineAccess },
                    Enabled = true
                }
            };
    }
    public static IEnumerable<TestUser> Users()
    {
        return new[] {
                new TestUser
                {
                    SubjectId = "1",
                    Username = "myUser@question.com",
                    Password = "password",
                }
            };
    }
}

从我的ASP.NET应用程序(单独的项目)中,我发送了身份验证请求,

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return View(model);
                }
                var client = new OAuth2Client(new Uri("http://localhost:61502/connect/token"), "socialnetwork", "secret");                
                var requestResponse = client.RequestAccessTokenUserName(model.Email, model.Password, "openid profile offline_access");
                var claims = new[]
                {
                    new Claim("access_token", requestResponse.AccessToken),
                    new Claim("refresh_token", requestResponse.RefreshToken)
                };
                var claimsIdentity = new ClaimsIdentity(claims,
                    DefaultAuthenticationTypes.ApplicationCookie);
                HttpContext.GetOwinContext().Authentication.SignIn(claimsIdentity);
                return RedirectToLocal(returnUrl);
            }
            catch (Exception ex)
            {
                    //Do my Error Handling
            }

        }

现在我在服务器控制台上看到错误,

offline_access不允许使用此客户:SocialNetwork

我已经在允许的

上提供了对客户的所有访问权限
d scope,
AllowedScopes = new [] { "socialnetwork", StandardScopes.OfflineAccess, StandardScopes.OpenId, StandardScopes.OfflineAccess }

为什么我会遇到此错误?这与流量有关还是其他。

AllowOfflineAccess属性设置为true在客户端配置中,而不是将其添加到AllowedScopes

           new Client
            {
                ClientId = "socialnetwork",
                ClientName = "SocialNetwork",
                ClientSecrets = new [] { new Secret("secret".Sha256()) },
                 //Flow = Flows.ResourceOwner,
                AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
                AllowedScopes = new [] { "socialnetwork",StandardScopes.OpenId },
                Enabled = true,
                AllowOfflineAccess = true
            }

相关内容

  • 没有找到相关文章