none
Active directory .net 4.5 et Terminal Serveur Profil Path RRS feed

  • Discussion générale

  • Bonjour, je souhaite développer une application qui me permet d'ajouter des utilisateurs dans active directory et dans une BDD ORACLE.

    grâce aux classe incorporée dans .NET 3.5 je peux facilement programmer la partie "ajout / suppression " d'un USER et d'un GROUPE.

    Toutefois je me retrouve avec des difficultés non prisent en compte par ces classes introduitent à la NET 3.5.

    Il s'agit, pour un USER donné , de pouvoir modifier le champ : "TERMINAL SERVER PROFIL PATH".

    Sur certains forums , ils préconisent d'utiliser : "

    InvokeGet("TerminalServicesProfilePath")"

    Mais ça ne semble pas fonctionner !
    D'autres d'utiliser une API :
    wtsapi32.dll.

    J'aimerai vraiment avoir de bonnes pistes qui ne me feront pas développer une usine à gaz.




    Merci pour votre précieuse aide !

    vendredi 19 juin 2015 14:44

Toutes les réponses

  • Bonjour Bapt.bauer,

    Est-ce que vous avez mis en référence tsuserex.dll ? Quel erreur recevez-vous?

    Cordialement,
    Dimitar

    jeudi 25 juin 2015 06:33
    Modérateur
  • merci pour la réponse, j'ai pas pu répondre avant, j'étais en congès.

    Donc, j'ai bien activé les services Active directory adéquat, et j'ai dans c:/windows/system32 la DLL : tsuerex.dll ....

    Mais je ne trouve pas la référence dans visual studio ....

    Du coup entre deux, je suis partie vers une autre solution :

    Qui est de créer un extend de la classe

    UserPrincipal

    using System.DirectoryServices.AccountManagement;
    
    [DirectoryRdnPrefix("CN")]
    [DirectoryObjectClass("Person")]
    public class UserPrincipalEx : UserPrincipal
    {
        // Implement the constructor using the base class constructor. 
        public UserPrincipalEx(PrincipalContext context)
            : base(context)
        { }
    
        // Implement the constructor with initialization parameters.    
        public UserPrincipalEx(PrincipalContext context,
                             string samAccountName,
                             string password,
                             bool enabled)
            : base(context, samAccountName, password, enabled)
        { }
    
        // Create the "TermSrvProfilePath" property.    
        [DirectoryProperty("msTSProfilePath")]
        public string TermSrvProfilePath
        {
            get
            {
                if (ExtensionGet("msTSProfilePath").Length != 1)
                    
                    return "vide";
    
                return (string)ExtensionGet("msTSProfilePath")[0];
            }
            set { ExtensionSet("msTSProfilePath", value); }
        }
    
    
        public static new UserPrincipalEx FindByIdentity(PrincipalContext context,
                                                      string identityValue)
        {
            return (UserPrincipalEx)FindByIdentityWithType(context,
                                                         typeof(UserPrincipalEx),
                                                         identityValue);
        }
    
        [DirectoryProperty("wWWHomePage")]
        public string wWWHomePage
        {
            get
            {
                if (ExtensionGet("wWWHomePage").Length != 1)
                    return null;
    
                return (string)ExtensionGet("wWWHomePage")[0];
    
            }
            set { this.ExtensionSet("wWWHomePage", value); }
        }
    
    }



    J'arrive à obtenir par exemple les infos :

    wWWHomePage

    Mais quand je veux afficher le Path Terminal Server profil :

    TermSrvProfilePath

    ... la valeur retournée est "null"

    je ne comprends pas .... 

    merci pour votre aide !


    mardi 21 juillet 2015 11:22