Entschärfung: ClaimsIdentity-Konstruktor

Beginnend mit .NET Framework 4.6.2 gibt es eine Änderung in der Weise, wie der ClaimsIdentity.ClaimsIdentity(IIdentity)-Konstruktor die ClaimsIdentity.Actor-Eigenschaft festlegt. Wenn es sich bei dem IIdentity-Argument um ein ClaimsIdentity-Objekt handelt und die Actor-Eigenschaft des ClaimsIdentity-Objekts nicht null ist, wird die Actor-Eigenschaft mithilfe der ClaimsIdentity.Clone-Methode angefügt. In .NET Framework 4.6.1 wird die Actor-Eigenschaft als vorhandener Verweis angefügt.

Auswirkungen

Beginnend mit .NET Framework 4.6.2 ist die ClaimsIdentity.Actor-Eigenschaft des neuen ClaimsIdentity-Objekts nicht gleich der ClaimsIdentity.Actor-Eigenschaft des IIdentity-Arguments des Konstruktors. In .NET Framework 4.6.1 und früheren Versionen ist sie gleich.

Problemumgehung

Wenn dieses Verhalten nicht erwünscht ist, können Sie das vorherige Verhalten wiederherstellen, indem Sie den Switch.System.Security.ClaimsIdentity.SetActorAsReferenceWhenCopyingClaimsIdentity-Schalter in Ihrer Anwendungskonfigurationsdatei auf true festlegen. Dazu müssen Sie dem Abschnitt <runtime> Ihrer web.config-Datei Folgendes hinzufügen:

<configuration>  
   <runtime>  
      <AppContextSwitchOverrides value="Switch.System.Security.ClaimsIdentity.SetActorAsReferenceWhenCopyingClaimsIdentity=true" />  
   </runtime>  
</configuration>  

Siehe auch

Neuausrichtungsänderungen