高分等你拿! Active Directory属性扩展问题
1、我想通过下面的AddUser 方法添加一个用户,sAMAccountName、displayName、givenName等都是AD自带的属性,但是现在有需要使用小灵通属性(phs),但AD里面又没有自带。我现在想扩展小灵通属性(phs),但是出了问题。
public int AddUser (string doorNumber,string commonName,string accountName,string displayName,string sn,string givenName,string password,string departmentID,bool mail,string departName,string mailaddress,string duty,string tel,string mobile,string Position)
{
int returnstring=0;
try
{
DirectoryEntry users=new DirectoryEntry("LDAP://spywho.com/OU=Users,OU=Winstar,DC=spywho,DC=com");
DirectoryEntry user=users.Children.Add("CN="+commonName,"User");
user.Properties["sAMAccountName"].Add(accountName);
user.Properties["displayName"].Add(displayName);
user.Properties["givenName"].Add(givenName);
user.Properties["userAccountControl"].Add(0x010200);
user.Properties["userPrincipalName"].Add(accountName);
user.Properties["sn"].Add(sn);
if(departName!=null && departName!=string.Empty)
{
user.Properties["department"].Add(departName);
}
if(doorNumber!=null && doorNumber!=string.Empty)
{
user.Properties["streetAddress"].Add(doorNumber);
}
if(tel!=null && tel!=string.Empty)
{
user.Properties["telephoneNumber"].Add(tel);
}
if(mailaddress!=null && mailaddress!=string.Empty)
{
user.Properties["mail"].Add(mailaddress);
}
if(mobile!=null && mobile!=string.Empty)
{
user.Properties["mobile"].Add(mobile);
}
if(duty!=null && duty!=string.Empty)
{
user.Properties["title"].Add(duty);
}
user.CommitChanges();
returnstring = 1;
}
catch
{}
return returnstring;
}
2、我通过SchemaExtend()方法在Schema下扩展了属性phs,而且此属性也确实存在了,可是再使用上面AddUser方法时还是没有“phs”属性,我想问一下这个怎么处理,或者其他解决办法扩展小灵通等属性,并且能够使用户的能使用这些属性。
public int SchemaExtend()
{
try
{
//ActiveDs 是COM里面的组件(Active DS Type Library)
DirectoryEntry schemaEntry = new DirectoryEntry("LDAP://CN=Schema,CN=Configuration,DC=spywho,DC=com");
ActiveDs.IADsContainer iaCon= (ActiveDs.IADsContainer)schemaEntry.NativeObject;
ActiveDs.IADs ia = (ActiveDs.IADs)iaCon.Create("attributeSchema","cn=phs");
ia.Put("attributeId","1.2.840.113556.1.4.7000.233.28688.28684.8.113567.421.2001541.816060");
ia.Put("oMSyntax",20);
ia.Put("attributeSyntax","2.5.5.4");
ia.Put("isSingleValued",true);
ia.Put("lDAPDisplayName","attrTest04");
ia.SetInfo();
return 1;
}
Catch{ return 0;}
}