Ich möchte einige zusätzliche Ansprüche an einen Principal während der Authentifizierung hinzufügen. Ich versuche, einen benutzerdefinierten ClaimsAuthenticationManager in meinem MVC 4,5 Projekt zu implementieren, die Windows-Authentifizierung verwendet:ClaimsAuthenticationManager.Authenticate wird nie aufgerufen
namespace Project.Infrastructure
{
public class ClaimsTransformer : ClaimsAuthenticationManager
{
public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal)
{
if (incomingPrincipal != null && incomingPrincipal.Identity.IsAuthenticated == true)
{
((ClaimsIdentity)incomingPrincipal.Identity).AddClaim(new Claim(ClaimTypes.Role, "Admin"));
}
return incomingPrincipal;
}
}
}
Ich habe die web.config einrichten, um meine benutzerdefinierte Klasse zu verwenden:
<configSections>
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
und
<system.identityModel>
<identityConfiguration>
<claimsAuthenticationManager type="Project.Infrastructure.ClaimsTransformer, [AssemblyName]" />
</identityConfiguration>
</system.identityModel>
Aber die Authentifizieren Methode wird nie aufgerufen. Fehle ich etwas?
Haben Sie das Berechtigungsmodul für Ansprüche Ihrer .config hinzugefügt? –
Nein, die Autorisierung wird nicht angepasst. Es ist mein Verständnis, dass die zwei getrennt und verschieden sind und man nicht von dem anderen abhängig ist. Ist das nicht korrekt? – newmanth