高分等你拿! Active Directory属性扩展问题

redarmydocnet 2005-09-12 11:02:15
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;}

}
...全文
108 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jygdragon 2005-12-28
  • 打赏
  • 举报
回复
对于DirectoryEntry来说,他的属性是可以扩展的,你直接添加属性就可以了,如下所示: de.Properties["phone"].Add(sUserphone);//手机号码
nyh800201002 2005-09-17
  • 打赏
  • 举报
回复
ActiveDs.IADsContainer iaCon= (ActiveDs.IADsContainer)schemaEntry.NativeObject;
这个用vb.net怎么写呢?
GSXiaoXiao 2005-09-12
  • 打赏
  • 举报
回复
学习

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧