小编Jac*_*rão的帖子

.Net Core 2.0 Web API OpenIddict授权:重定向到索引而不是返回json数据

所以,问题是当我在api控制器上使用AuthorizeAttribute时,它会以预期的方式停止工作.

当我调用getAllUsers操作,而不是以json格式返回用户时,Identity会以某种方式重定向到index.html,然后在我的Angular客户端应用程序中出现json解析器错误,因为html不是可以解析的有效json数据.

升级到Asp.Net Core 2.0后就开始发生这种情况.

我想也许我必须在Startup.cs或Program.cs中改变一些东西.但我无法弄清楚是什么.

我已经在OpenIddict上关注了新的Core 2.0的Refresh Token Sample,一切似乎都没问题.

所以这是我的代码......

Startup.cs

public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options => {
            options.UseSqlServer(Configuration.GetConnectionString("LocalDB"))
                .UseOpenIddict();
        });
        services.AddScoped<IUserRepository, UserRepository>();
        services.AddScoped<IRoleRepository, RoleRepository>();
        services.AddScoped<IManadRepository, ManadRepository>();
        services.AddScoped<IManadRubricaRepository, ManadRubricaRepository>();
        services.AddScoped<IManadSistemaRepository, ManadSistemaRepository>();
        services.AddScoped<IRestituicaoRepository, RestituicaoRepository>();
        services.AddTransient<ApplicationDbSeedData>();

        services.AddIdentity<ApplicationUser, ApplicationRole>(options =>
            {
                options.User.RequireUniqueEmail = true;
                options.ClaimsIdentity.UserNameClaimType = OpenIdConnectConstants.Claims.Name;
                options.ClaimsIdentity.UserIdClaimType = OpenIdConnectConstants.Claims.Subject;
                options.ClaimsIdentity.RoleClaimType = OpenIdConnectConstants.Claims.Role;
            })
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

        services.AddOpenIddict(options =>
        {
            options.AddEntityFrameworkCoreStores<ApplicationDbContext>();
            options.AddMvcBinders();
            options.EnableTokenEndpoint("/connect/token");
            options.AllowPasswordFlow();
            options.AllowRefreshTokenFlow();

            if (!_env.IsProduction())
                options.DisableHttpsRequirement();
        });

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

        services.AddAuthentication()
            .AddOAuthValidation();

        services.AddAuthorization();

        services.AddTransient<IMailSender, MailjetSender>();

        services.AddScoped<IManadParser, ManadParser>();
    } …
Run Code Online (Sandbox Code Playgroud)

openiddict asp.net-core-2.0

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

标签 统计

asp.net-core-2.0 ×1

openiddict ×1