У меня есть проект ASP.NET Web Api 2, в котором я использую несколько механизмов аутентификации (Windows Auth & API KEY Auth).
Мой класс запуска выглядит примерно так
public class Startup
{
public void Configuration(IAppBuilder app)
{
var httpConfiguration = new HttpConfiguration();
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
ConfigureWinAuth(app);
ConfigureApiKeyAuth(app);
app.Use<AuthMiddleware>();
app.Use<LicenseMiddleware>();
WebApiConfig.Register(httpConfiguration);
app.UseWebApi(httpConfiguration);
}
public void ConfigureWinAuth(IAppBuilder app)
{
var oAuthServerOptions = new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/win-auth-token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new WindowsAuthorizationServerProvider()
};
app.UseOAuthAuthorizationServer(oAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
public void ConfigureApiKeyAuth(IAppBuilder app)
{
app.UseApiKeyAuthentication(new ApiKeyAuthenticationOptions
{
Provider = new ApiKeyAuthenticationProvider
{
OnValidateIdentity = ValidateIdentity,
OnGenerateClaims = GenerateClaims
}
});
}
}
Теперь мне также нужно добавить поддержку документов Swagger, которые я использую для этой цели Swashbuckle .
Теперь, если я обозреваю сервер / сваггера в браузере, я получаю 401, чтоожидается, так как Owin запрашивает, чтобы заголовок авторизации присутствовал во всех запросах.Теперь мне нужно сказать Оуэну, что этот заголовок не следует ожидать, когда путь равен / swagger .
Я не смогу использовать атрибут [AllowAnonymous], поскольку способ работы swashbuckle - это динамическое создание URL-адреса.служить документам.по умолчанию http://localhost/swagger
Может кто-нибудь дать мне знать, как этого добиться?
Обновление 1
Я закомментировал все аутентификации иПромежуточное программное обеспечение и до сих пор получают 401
//ConfigureWinAuth(app);
//ConfigureApiKeyAuth(app);
//app.Use<AuthMiddleware>();
//app.Use<LicenseMiddleware>();
Заранее спасибо !!