У меня есть следующий код для моего Startup.cs
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters()
{
ValidAudience = ConfigurationManager.AppSettings["value1"]
},
Tenant = ConfigurationManager.AppSettings["value2"]
});
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
CookieManager = new SystemWebCookieManager()
});
app.UseKentorOwinCookieSaver(); //Workaround for infinite loop between webapp & login page
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = Authority,
PostLogoutRedirectUri = redirectUri,
RedirectUri = redirectUri,
Notifications = new OpenIdConnectAuthenticationNotifications()
{
//
// If there is a code in the OpenID Connect response, redeem it for an access token and refresh token, and store those away.
//
AuthorizationCodeReceived = OnAuthorizationCodeReceived,
AuthenticationFailed = OnAuthenticationFailed
}
});
}
private Task OnAuthenticationFailed(AuthenticationFailedNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> context)
{
context.HandleResponse();
context.Response.Redirect("/Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
Однако, когда я делаю это
AuthenticationFailed = OnAuthenticationFailed
Iполучаю следующую ошибку: Ошибка CS0123 Нет перегрузки для 'OnAuthenticationFailed' соответствует делегату 'Func , Task>'
Я не понимаю, почему это происходиттак как типы совпадают здесь.Все это начало происходить с тех пор, как я обновил Owin 4.0.1, а также все Microsoft.IdentityModel и System.IdentityModel до 5.4.0.
Я знаю, что в версии 5.X произошли серьезные изменения, но ядумаю, что все решено в версии 5.4.0, и это единственная проблема, которую я оставил.