0

我正在使用 Service Fabric Stateless Service Asp.net 并尝试实现 Oauth 2.0,但在 Startup.cs 和 ServiceInstanceListener 下出现错误

无法为“AuthenticationService.Startup”类型的方法“Configure”的参数“appBuilder”解析“Owin.IAppBuilder”类型的服务

我在 Service 的 StartUp.cs 下找不到 ConfigureAuth(IAppBuilder app)。

代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAppBuilder appBuilder) {

    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();
    **var config = new HttpConfiguration();
    ConfigureOAuth(appBuilder);
    appBuilder.UseCors(CorsOptions.AllowAll);
    appBuilder.UseWebApi(config);**

}
public void **ConfigureOAuth**(IAppBuilder app)
{
    OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
    {
        AllowInsecureHttp = true,
        TokenEndpointPath = new PathString("/token"),
        AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
        Provider = new SimpleAuthorizationServerProvider()
    };

    // Token Generation
    app.UseOAuthAuthorizationServer(OAuthServerOptions);
    app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

}

编辑固定代码块...

4

1 回答 1

0

我认为您使用 .Net Framework 和 Owin 的引用,而不是使用 .NET Core。尝试删除 ConfigureOauth 方法并在 Startup.cs 文件的 ConfigureServices 方法中使用此代码段

services.AddAuthentication()
  .AddJwtBearer(cfg =>
  {
    cfg.RequireHttpsMetadata = false;
    cfg.SaveToken = true;

    cfg.TokenValidationParameters = new TokenValidationParameters()
    {
      ValidIssuer = Configuration["Tokens:Issuer"],
      ValidAudience = Configuration["Tokens:Issuer"],
      IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Tokens:Key"]))
    };

  });
于 2017-11-09T14:13:55.187 回答