Abbiamo un'applicazione originariamente costruita con .NET 4.0 e WIF 3.5 (1.0?). Sono in procinto di convertirlo per utilizzare WIF 4.5 in quanto abbiamo aggiornato l'app a .NET 4.5. Ho apportato tutte le modifiche al codice e ho combattuto con le impostazioni di configurazione. Il mio attuale dilemma è con l'elemento <claimTypeRequired>. Secondo this documentation dovrebbe essere un figlio di <identityConfiguration>, ma quando modifico il mio config per assomigliare a questoConfigurazione di Windows Identity Foundation 4.5
<system.identityModel>
<identityConfiguration>
<claimTypeRequired>
...
</claimTypeRequired>
ottengo il seguente errore in fase di esecuzione
Parser Error Message: Unrecognized element 'claimTypeRequired'.
Se ho appena commento out the <claimTypeRequired> block Ho superato quell'errore ma poi mi viene presentato un altro problema. Avevamo modificato il maximumClockSkew nell'applicazione esistente tramite la seguente configurazione
<securityTokenHandlerConfiguration>
<maximumClockSkew value="1" />
</securityTokenHandlerConfiguration>
La documentazione di configurazione si fa riferimento in precedenza non ha nemmeno parlare della maximumClockSkew. Ho pensato di provare a lasciarlo per vedere cosa succede. Quello che succede è
Parser Error Message: Property 'maximumClockSkew' is not a ConfigurationElement.
Ma quando guardo la classe SecurityTokenHandlerConfigurationElement utilizzando JustDecompile posso vedere la proprietà:
[ConfigurationProperty("maximumClockSkew", IsRequired=false, DefaultValue="00:05:00")]
[IdentityModelTimeSpanValidator(MinValueString="00:00:00")]
[TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
public TimeSpan MaximumClockSkew...
così sembra come se fosse in attesa di essere lì.
È quasi come se Microsoft non volesse che usassimo questa roba.
È fantastico. In System.IdentityModel.Services.Serialization.ConfigurationConstants hanno ancora una costante per questo, e la classe interna esiste ancora per rappresentarlo (System.IdentityModel.Services.Serialization.ClaimTypeRequiredElement). Non ha importanza, è stata meno preoccupante di MaximumClockSkew, che abbiamo finito per aggirare impostandolo a livello di programmazione. –
puoi provare l'opzione sotto Craig W.Lo rende configurabile e senza hard coding –