Ich benutze die OWIN WsFederation, um Benutzer zu authentifizieren. Ich möchte einen Anspruch erheben und eine zusätzliche Überprüfung durchführen, um festzustellen, ob diese eindeutige Benutzer-ID in einer Datenbank für den Zugriff gespeichert ist. Wenn nicht, möchte ich einen Benutzer zu einer Ansicht umleiten, die eine Nachricht anzeigt. Ich habe eine Benachrichtigung "SecurityTokenValidated" abonniert, in dieser Benachrichtigung werde ich den Anspruch erfassen und überprüfen, ob der Benutzer existiert. Aus meiner Sicht wird SecurityTokenValidated nach der Erstellung des Cookies aufgerufen, daher kann dies zu spät sein.Inkludieren der WsFederation-Authentifizierung
Wie leite ich den Benutzer zu einer Ansicht um, damit er weiß, dass er keinen Zugriff hat?
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = AppSettings.IdpRealm,
MetadataAddress = AppSettings.IdpMetadata,
Notifications = new WsFederationAuthenticationNotifications
{
// check and create additional claims
SecurityTokenValidated = notification =>
{
// identity object to access claims from IDP
var identity = notification.AuthenticationTicket.Identity;
// get claim and check database
return Task.FromResult<object>(null);
}
}
});