j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
l'exécute j'ai toujours une erreur :
"Une violation de contrainte s'est produite." Normalement cette exception
est lancée si je tente de faire de quoi de non permi sur Active Directory.
Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
Merci beacuoup !
public string AjouterGroupe()
{
DirectoryEntry ouAjout;
DirectoryEntry leDomaine;
DirectorySearcher domSearch;
try
{
leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
//Recherche du OU tout dépendant de son format en entré
domSearch = new DirectorySearcher(leDomaine);
if (ou.StartsWith("OU="))
{
domSearch.Filter = "(" + ou + ")";
}
else
{
domSearch.Filter = "(OU=" + ou + ")";
}
domSearch.SearchScope = SearchScope.Subtree;
SearchResult result = domSearch.FindOne();
if (result != null)
{
ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
if (ou.StartsWith("OU="))
{
ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
return "Le OU n'existe pas dans le domaine";
}
}
DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
monGrp.Properties["Description"].Add(nom);
monGrp.Properties["groupType"].Value =
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
monGrp.CommitChanges();
return "";
}
catch (Exception e)
{
return e.Message;
}
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Gaumond
Oui et il n'y a pas de problème a créer un OU, un user, etc.
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de news:
Tu te connectes bien avec les droits d'administrateur du domaine sur ton
AD ?
A+
LEBRUN Thomas
"François Gaumond" a écrit :
> Bonjour, > > j'ai une fonction, dont le code est plus bas, qui sert à ajouter un > utilisateur dans un groupe, ce qui est très basique. Mais lorsque je > l'exécute j'ai toujours une erreur : > > "Une violation de contrainte s'est produite." Normalement cette
exception
> est lancée si je tente de faire de quoi de non permi sur Active
Directory.
> Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci. > > Merci beacuoup ! > > public string AjouterGroupe() > { > DirectoryEntry ouAjout; > DirectoryEntry leDomaine; > DirectorySearcher domSearch; > > try > { > leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP, > laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > > //Recherche du OU tout dépendant de son format en entré > domSearch = new DirectorySearcher(leDomaine); > if (ou.StartsWith("OU=")) > { > domSearch.Filter = "(" + ou + ")"; > } > else > { > domSearch.Filter = "(OU=" + ou + ")"; > } > domSearch.SearchScope = SearchScope.Subtree; > SearchResult result = domSearch.FindOne(); > if (result != null) > { > ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > } > else > { > if (ou.StartsWith("OU=")) > { > ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7); > ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > } > else > { > return "Le OU n'existe pas dans le domaine"; > } > } > DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group"); > monGrp.Properties["Description"].Add(nom); > monGrp.Properties["groupType"].Value > > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED; > monGrp.CommitChanges(); > return ""; > } > catch (Exception e) > { > return e.Message; > } > } > > >
Oui et il n'y a pas de problème a créer un OU, un user, etc.
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de
news:516B1058-5F44-4AAE-8157-0E53D0F3B982@microsoft.com...
Tu te connectes bien avec les droits d'administrateur du domaine sur ton
AD ?
A+
LEBRUN Thomas
"François Gaumond" a écrit :
> Bonjour,
>
> j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
> utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
> l'exécute j'ai toujours une erreur :
>
> "Une violation de contrainte s'est produite." Normalement cette
exception
> est lancée si je tente de faire de quoi de non permi sur Active
Directory.
> Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
>
> Merci beacuoup !
>
> public string AjouterGroupe()
> {
> DirectoryEntry ouAjout;
> DirectoryEntry leDomaine;
> DirectorySearcher domSearch;
>
> try
> {
> leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
> laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
>
> //Recherche du OU tout dépendant de son format en entré
> domSearch = new DirectorySearcher(leDomaine);
> if (ou.StartsWith("OU="))
> {
> domSearch.Filter = "(" + ou + ")";
> }
> else
> {
> domSearch.Filter = "(OU=" + ou + ")";
> }
> domSearch.SearchScope = SearchScope.Subtree;
> SearchResult result = domSearch.FindOne();
> if (result != null)
> {
> ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
> }
> else
> {
> if (ou.StartsWith("OU="))
> {
> ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
> ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
> laConnexion.MotPasse, AuthenticationTypes.Secure);
> }
> else
> {
> return "Le OU n'existe pas dans le domaine";
> }
> }
> DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
> monGrp.Properties["Description"].Add(nom);
> monGrp.Properties["groupType"].Value > > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
> ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
> monGrp.CommitChanges();
> return "";
> }
> catch (Exception e)
> {
> return e.Message;
> }
> }
>
>
>
Oui et il n'y a pas de problème a créer un OU, un user, etc.
"Lebrun Thomas" <lebrun_thomas_at_hotmail.com> a écrit dans le message de news:
Tu te connectes bien avec les droits d'administrateur du domaine sur ton
AD ?
A+
LEBRUN Thomas
"François Gaumond" a écrit :
> Bonjour, > > j'ai une fonction, dont le code est plus bas, qui sert à ajouter un > utilisateur dans un groupe, ce qui est très basique. Mais lorsque je > l'exécute j'ai toujours une erreur : > > "Une violation de contrainte s'est produite." Normalement cette
exception
> est lancée si je tente de faire de quoi de non permi sur Active
Directory.
> Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci. > > Merci beacuoup ! > > public string AjouterGroupe() > { > DirectoryEntry ouAjout; > DirectoryEntry leDomaine; > DirectorySearcher domSearch; > > try > { > leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP, > laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > > //Recherche du OU tout dépendant de son format en entré > domSearch = new DirectorySearcher(leDomaine); > if (ou.StartsWith("OU=")) > { > domSearch.Filter = "(" + ou + ")"; > } > else > { > domSearch.Filter = "(OU=" + ou + ")"; > } > domSearch.SearchScope = SearchScope.Subtree; > SearchResult result = domSearch.FindOne(); > if (result != null) > { > ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > } > else > { > if (ou.StartsWith("OU=")) > { > ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7); > ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur, > laConnexion.MotPasse, AuthenticationTypes.Secure); > } > else > { > return "Le OU n'existe pas dans le domaine"; > } > } > DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group"); > monGrp.Properties["Description"].Add(nom); > monGrp.Properties["groupType"].Value > > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED; > monGrp.CommitChanges(); > return ""; > } > catch (Exception e) > { > return e.Message; > } > } > > >
François Gaumond
La solution est très simple et je suis vraiment bête de ne pas y avoir pensé avant :
il faut définir la propriété sAMAccountName et le tout fonctionne no.1
encore une fois un gros merci à adsiedit.msc l'utilitaire oar excelence lorsque l'on programme avec AD
"François Gaumond" a écrit dans le message de news:
Bonjour,
j'ai une fonction, dont le code est plus bas, qui sert à ajouter un utilisateur dans un groupe, ce qui est très basique. Mais lorsque je l'exécute j'ai toujours une erreur :
"Une violation de contrainte s'est produite." Normalement cette exception est lancée si je tente de faire de quoi de non permi sur Active Directory. Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
Merci beacuoup !
public string AjouterGroupe() { DirectoryEntry ouAjout; DirectoryEntry leDomaine; DirectorySearcher domSearch;
try { leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure);
//Recherche du OU tout dépendant de son format en entré domSearch = new DirectorySearcher(leDomaine); if (ou.StartsWith("OU=")) { domSearch.Filter = "(" + ou + ")"; } else { domSearch.Filter = "(OU=" + ou + ")"; } domSearch.SearchScope = SearchScope.Subtree; SearchResult result = domSearch.FindOne(); if (result != null) { ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure); } else { if (ou.StartsWith("OU=")) { ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7); ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure); } else { return "Le OU n'existe pas dans le domaine"; } } DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group"); monGrp.Properties["Description"].Add(nom); monGrp.Properties["groupType"].Value > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED; monGrp.CommitChanges(); return ""; } catch (Exception e) { return e.Message; } }
La solution est très simple et je suis vraiment bête de ne pas y avoir pensé
avant :
il faut définir la propriété sAMAccountName et le tout fonctionne no.1
encore une fois un gros merci à adsiedit.msc l'utilitaire oar excelence
lorsque l'on programme avec AD
"François Gaumond" <news@NS_xpresstech.net> a écrit dans le message de
news:e3ony2pfEHA.596@TK2MSFTNGP11.phx.gbl...
Bonjour,
j'ai une fonction, dont le code est plus bas, qui sert à ajouter un
utilisateur dans un groupe, ce qui est très basique. Mais lorsque je
l'exécute j'ai toujours une erreur :
"Une violation de contrainte s'est produite." Normalement cette exception
est lancée si je tente de faire de quoi de non permi sur Active Directory.
Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
Merci beacuoup !
public string AjouterGroupe()
{
DirectoryEntry ouAjout;
DirectoryEntry leDomaine;
DirectorySearcher domSearch;
try
{
leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP,
laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
//Recherche du OU tout dépendant de son format en entré
domSearch = new DirectorySearcher(leDomaine);
if (ou.StartsWith("OU="))
{
domSearch.Filter = "(" + ou + ")";
}
else
{
domSearch.Filter = "(OU=" + ou + ")";
}
domSearch.SearchScope = SearchScope.Subtree;
SearchResult result = domSearch.FindOne();
if (result != null)
{
ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
if (ou.StartsWith("OU="))
{
ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7);
ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur,
laConnexion.MotPasse, AuthenticationTypes.Secure);
}
else
{
return "Le OU n'existe pas dans le domaine";
}
}
DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group");
monGrp.Properties["Description"].Add(nom);
monGrp.Properties["groupType"].Value > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP |
ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED;
monGrp.CommitChanges();
return "";
}
catch (Exception e)
{
return e.Message;
}
}
La solution est très simple et je suis vraiment bête de ne pas y avoir pensé avant :
il faut définir la propriété sAMAccountName et le tout fonctionne no.1
encore une fois un gros merci à adsiedit.msc l'utilitaire oar excelence lorsque l'on programme avec AD
"François Gaumond" a écrit dans le message de news:
Bonjour,
j'ai une fonction, dont le code est plus bas, qui sert à ajouter un utilisateur dans un groupe, ce qui est très basique. Mais lorsque je l'exécute j'ai toujours une erreur :
"Une violation de contrainte s'est produite." Normalement cette exception est lancée si je tente de faire de quoi de non permi sur Active Directory. Mais je ne comprends pas ce qui ne serait pas permis dans ce cas-ci.
Merci beacuoup !
public string AjouterGroupe() { DirectoryEntry ouAjout; DirectoryEntry leDomaine; DirectorySearcher domSearch;
try { leDomaine = new DirectoryEntry(laConnexion.DomaineLDAP, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure);
//Recherche du OU tout dépendant de son format en entré domSearch = new DirectorySearcher(leDomaine); if (ou.StartsWith("OU=")) { domSearch.Filter = "(" + ou + ")"; } else { domSearch.Filter = "(OU=" + ou + ")"; } domSearch.SearchScope = SearchScope.Subtree; SearchResult result = domSearch.FindOne(); if (result != null) { ouAjout = new DirectoryEntry(result.Path, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure); } else { if (ou.StartsWith("OU=")) { ou = "LDAP://" + ou + "," + laConnexion.DomaineLDAP.Remove(0,7); ouAjout = new DirectoryEntry(ou, laConnexion.Utilisateur, laConnexion.MotPasse, AuthenticationTypes.Secure); } else { return "Le OU n'existe pas dans le domaine"; } } DirectoryEntry monGrp = ouAjout.Children.Add("CN=" + nom,"group"); monGrp.Properties["Description"].Add(nom); monGrp.Properties["groupType"].Value > ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_GLOBAL_GROUP | ActiveDs.ADS_GROUP_TYPE_ENUM.ADS_GROUP_TYPE_SECURITY_ENABLED; monGrp.CommitChanges(); return ""; } catch (Exception e) { return e.Message; } }