Frage

UserPrincipal Erweiterung nutzen Sie die integrierten Eigenschaften ... läuft in ein Problem, wenn wir die FindByIdentity() Methode überlasten.

Von Microsofts Beispiel unter http: // msdn. microsoft.com/en-us/library/bb384372%28VS.90%29.aspx (Teile der Kürze halber nicht inbegriffen):

[DirectoryRdnPrefix("CN")]
[DirectoryObjectClass("inetOrgPerson")]
public class InetOrgPerson : UserPrincipal {

   // Implement the overloaded search method FindByIdentity
   public static new InetOrgPerson FindByIdentity(PrincipalContext context, 
                                                  string identityValue) {
       return (InetOrgPerson)FindByIdentityWithType(context,
                                                    typeof(InetOrgPerson),
                                                    identityValue);
   }

   // Implement the overloaded search method FindByIdentity
   public static new InetOrgPerson FindByIdentity(PrincipalContext context, 
                                                  IdentityType identityType, 
                                                  string identityValue) {
       return (InetOrgPerson)FindByIdentityWithType(context, 
                                                    typeof(InetOrgPerson), 
                                                    identityType,
                                                    identityValue);
   } 
}

Wenn ich den genauen Code aus dem MSDN Beispiel nehmen und es in meine App einfügen, funktioniert es nicht. Der Aufruf von InetOrgPerson.FindByIdentity() kehrt null, wie zum Beispiel:

if (null == InetOrgPerson.FindByIdentity(principalContext, UserName)) {
     throw new Exception("bah");
}

In der Tat, aus InetOrgPerson.FindByIdentity(), der Aufruf von FindByIdentityWithType() kehrt null, wie zum Beispiel:

if (null == FindByIdentityWithType(context, typeof(InetOrgPerson), identityType, identityValue) {
    throw new Exception("bah");
}

Doch der Aufruf:

FindByIdentityWithType(context, typeof(UserPrincipal), identityType, identityValue)

gibt mir das Benutzerobjekt ich will. Außer, dass ich nicht verwenden können, weil sie nicht auf die InetOrgPerson Objekt gegossen werden kann Ich muss zurück.

Was soll das? Ich würde erwarten, dass Microsoft das eigene Beispiel-Code zu arbeiten, aber es funktioniert nicht, so natürlich der Code Ich versuche, auf dem Beispiel zu schreiben basiert nicht funktioniert, auch nicht. Hat jemand diese Arbeit gemacht?

Vielen Dank im Voraus! James

War es hilfreich?

Lösung

Stellen Sie sicher, dass der Benutzer Sie sucht nach tatsächlich zu der Klasse inetOrgPerson gehört.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top