仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 696|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计Active Directory怎样用C#举行增添、删...

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。active起首我们来懂得一下甚么是ActiveDirectory。不必我形貌,看以下网址,或在.net自带匡助文档里依据ActiveDirectory关头字一搜,就甚么都分明了。
接上去,我们来看看权限。你能够经由过程“网上邻人--全部收集--Directory--demain(你的域名)”你就能够看到一切关于域下的信息,粗一看就晓得是怎样回事了。
必要告知人人的:一切构造单元下的用户都在Users(容器)--DemainUsers(组)中
用代码举行会见时,假如你是域办理员用户,则能够做任何操纵,不然,只能查询用户属性。
privatevoidSearchUser()
{
stringdomainName="Domain";
stringgroupName="DomainUsers";
stringdirmemName="";
//在DomainUsers域用户里获得每一个用户名
System.DirectoryServices.DirectoryEntrygroup=newSystem.DirectoryServices.DirectoryEntry("WinNT://"+domainName+"/"+groupName+",group");
foreach(Objectmemberin(IEnumerable)group.Invoke("Members"))
{
//依据很个用户天生如:"LDAP://OU=套装软体课,OU=体系开辟部,OU=资讯服务处,OU=营运增援中央,OU=XX公司,DC=Domain,DC=com,DC=cn"
System.DirectoryServices.DirectoryEntrydirmem=newSystem.DirectoryServices.DirectoryEntry(member);
dirmemName=dirmem.Name;
stringDomainName="Domain";
stringFilterStr="(sAMAccountname="+dirmemName+")";
System.DirectoryServices.DirectorySearcherFindMe=newSystem.DirectoryServices.DirectorySearcher(DomainName);
FindMe.Filter=FilterStr;
System.DirectoryServices.SearchResultFindRes=FindMe.FindOne();
System.DirectoryServices.DirectoryEntryMyUser=FindRes.GetDirectoryEntry();
stringOUPath=MyUser.Parent.Path;
//找到该用户地点的LDAP:后,由域办理员登录,并获得该用户的地点属性。
stringstrFieldsValue="",strFields="";
System.DirectoryServices.DirectoryEntrymyds=newSystem.DirectoryServices.DirectoryEntry(OUPath,"域办理员名","域办理员暗码");
foreach(System.DirectoryServices.DirectoryEntrytempEntryinmyds.Children)
{
if(tempEntry.SchemaClassName.ToString()=="user"&&tempEntry.Properties["sAMAccountName"].Value.ToString().ToLower()==dirmemName)
{
foreach(stringpropertyNameintempEntry.Properties.PropertyNames)
{
stringoneNode=propertyName+":"+
entry.Properties[propertyName][0].ToString();
this.Textbox1.Text=oneNode;
}
}
-------------------------------------------
publicvoidAddUser(stringstrPath,stringUsername,stringChineseName)//strPath增添用户至哪一个构造单元如"LDAP://OU=XX公司,DC=Domain,DC=com"帐号、中文名{
try
{
stringRootDSE;
//System.DirectoryServices.DirectorySearcherDSESearcher=newSystem.DirectoryServices.DirectorySearcher();
//RootDSE=DSESearcher.SearchRoot.Path;
//RootDSE="LDAP://DC=Domain,DC=com";
//RootDSE=RootDSE.Insert(7,"CN=Users,");
System.DirectoryServices.DirectoryEntrymyDE=newSystem.DirectoryServices.DirectoryEntry(strPath);
System.DirectoryServices.DirectoryEntriesmyEntries=myDE.Children;
//CreateanewentrySampleinthecontainer.
stringstrname="CN="+ChineseName;
System.DirectoryServices.DirectoryEntrymyDirectoryEntry=myEntries.Add(strname,"user");
//MessageBox.Show(myDirectoryEntry.SchemaClassName.ToString());
myDirectoryEntry.Properties["userPrincipalName"].Value=Username;
myDirectoryEntry.Properties["name"].Value=ChineseName;
myDirectoryEntry.Properties["samAccountName"].Value=Username;
myDirectoryEntry.Properties["userAccountControl"].Value=66048;//590336;
myDirectoryEntry.CommitChanges();
}

----------------------------------------------
privatevoidaddOU(stringstrPath,stringOUName)//增添构造到strPath构造单元下,构造称号
{
try
{
//StringRootDSE;
//System.DirectoryServices.DirectorySearcherDSESearcher=newSystem.DirectoryServices.DirectorySearcher();
//RootDSE=DSESearcher.SearchRoot.Path;
//RootDSE="LDAP://OU=百意时髦广场,DC=Domain,DC=com";
System.DirectoryServices.DirectoryEntrymyDE=newSystem.DirectoryServices.DirectoryEntry(strPath);
System.DirectoryServices.DirectoryEntriesmyEntries=myDE.Children;
stringname="OU="+OUName;
System.DirectoryServices.DirectoryEntrymyDirectoryEntry=myEntries.Add(name,"organizationalUnit");
myDirectoryEntry.Properties["name"].Value=OUName;
myDirectoryEntry.Properties["instanceType"].Value=4;
myDirectoryEntry.Properties["distinguishedName"].Value="OU="+OUName+",DC=Domain,DC=COM)";
myDirectoryEntry.Properties["objectCategory"].Value="CN=Organizational-Unit,CN=Schema,CN=Configuration,DC=sedep,DC=COM";
myDirectoryEntry.Properties["ou"].Value=OUName;
myDirectoryEntry.Properties["postalCode"].Value="777";
myDirectoryEntry.CommitChanges();
//UserMoveto("LDAP://OU="+OUName+",DC=sedep,DC=com",strPath);
}
catch(ExceptionRaiseErr)
{
MessageBox.Show(RaiseErr.Message);
}
}
---------------------------------------------
privatevoidModifyUser()
{
try
{
stringDomainName="Domain";
stringFilterStr="(sAMAccountname=karlluo)";
System.DirectoryServices.DirectorySearcherFindMe=newSystem.DirectoryServices.DirectorySearcher(DomainName);
FindMe.Filter=FilterStr;
System.DirectoryServices.SearchResultFindRes=FindMe.FindOne();
stringtt=FindRes.Path;
System.DirectoryServices.DirectoryEntryMyUser=FindRes.GetDirectoryEntry();
stringOUPath=MyUser.Parent.Path;
DirectoryEntrymyds=newDirectoryEntry(OUPath,"域办理员名","域办理员暗码");
foreach(System.DirectoryServices.DirectoryEntrytempEntryinmyds.Children)
{
if(tempEntry.SchemaClassName.ToString()=="user")
{
if(tempEntry.Properties["sAMAccountName"].Value.ToString().ToLower()=="karlluo")
{
tempEntry.UsePropertyCache=true;
tempEntry.Properties["st"].Value="yyyyyyyyyyyyyyyy";
//newEntry.Properties["userPrincipalName"].Value="userID";
tempEntry.CommitChanges();
}
}
}
}
catch(ExceptionRaiseErr)
{
MessageBox.Show(RaiseErr.Message);
}
}
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!
沙发
发表于 2015-1-19 21:36:33 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-25 11:50:24 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
老尸 该用户已被删除
地板
发表于 2015-2-2 21:57:25 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
愤怒的大鸟 该用户已被删除
5#
发表于 2015-2-8 08:19:35 | 只看该作者
业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
金色的骷髅 该用户已被删除
6#
发表于 2015-2-25 02:51:21 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
分手快乐 该用户已被删除
7#
发表于 2015-3-7 16:10:07 | 只看该作者
目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
谁可相欹 该用户已被删除
8#
发表于 2015-3-15 09:34:13 | 只看该作者
使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
海妖 该用户已被删除
9#
发表于 2015-3-21 23:26:56 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 10:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表