在sharepoint中没有提供修改密码的功能,估计也是因为不知道用户会使用哪种验证方式,AD or Form?
下面的用户使用的是AD验证,自己修改密码就成了很普通的事情,我们自己做一个webpart,写一些后台代码,
在欢迎哪里加一个菜单项,跳转到部署了修改密码webpart的页面就可以了。
#region 更改密码主要代码
public string ChangeADUserPassword(string DomainName, string UserName, string oldPass, string newPass)
// 用法:ChangeADUserPassword("AD", "VIRUS", "12345", "23456")
{
try
{
string strLDAP = "LDAP://" + DomainName;
string fullLoginName = DomainName + "\\" + UserName;
using (DirectoryEntry objDE = new DirectoryEntry(strLDAP, DomainName + "\\" + UserName, oldPass))
{
DirectorySearcher deSearcher = new DirectorySearcher(objDE);
deSearcher.Filter = "(&(objectClass=user)(sAMAccountName=" + UserName + "))";
DirectoryEntry usr = deSearcher.FindOne().GetDirectoryEntry();
usr.Invoke("ChangePassword", new Object[2] { oldPass, newPass });
usr.CommitChanges();
}
return ("更改域用户密码,操作成功!");
}
catch (Exception ex)
{
return ("更改失败,错误信息:" + ex.Message);
}
}
public static string ChangeLocalUserPassword(string LocalHostName, string UserName, string oldPass, string newPass, string AdminName, string AdminPass)
{
try
{
DirectoryEntry AD = new DirectoryEntry("WinNT://" + LocalHostName + ",computer");
DirectoryEntry NewUser = AD.Children.Find(UserName);
NewUser.Invoke("SetPassword", new object[] { newPass });
NewUser.CommitChanges();
return ("更改本机密码,操作成功!");
}
catch (Exception ex)
{
return ("更改失败,错误信息:" + ex.Message);
}
}
#endregion
使用的时候就像下面一样,首先判断,机器名和域名是否相同,就知道是否在域中,然后决定用哪个修改密码的方法。
if (Environment.MachineName == Environment.UserDomainName)
{
SPSecurity.RunWithElevatedPrivileges(delegate() { lblErrorMessage.Text = ChangeLocalUserPassword(Environment.MachineName, lblMessage.Text.Substring(0, lblMessage.Text.IndexOf(" ")), txtOldPassword.Text, txtNewPassword.Text, "", ""); });
}
else
{
lblErrorMessage.Text = ChangeADUserPassword(Environment.UserDomainName, Environment.UserName, txtOldPassword.Text, txtNewPassword.Text);
}
分享到:
相关推荐
SharePoint页面上修改AD域账号密码的Webpart,做好的Web部件Demo,稍微修改样式即可直接使用。
Sharepoint2013 修改AD域用户密码 切换用户 以其他用户登录
SharePoint 2013的修改域用户密码WebPart,而海外公司的老外又有这方面的强烈需求,公司的Sharepoint集成供应商没法提供Sharepoint 2013的修改密码解决方案,因此经过几天的深入专研,解决了多域环境下修改域用户...
SharePoint中修改密码的WEB Part之终极版:即可以修改AD,又可以修改本机用户密码的Web Part!!
比如整合AD的Exchange、Lync、sharePoint、CRM、使用域帐户进行Internet接入的认证等等,这时候怎么修改密码?答案就是采用web方式。其实,windows 2003已经自己带了修改域用户密码的相关ASP网页文件了,位置在C:\...
SharePoint2021 以其他用户登录和修改AD域用户密码.docx
查找找到将SharePoint:SiteActions和span放在<Sharepoint:SPSecurityTrimmedControl即可。 查找搜索</SharePoint:SiteActions>上面一直到 剪切 如下内容: <SharePoint:SiteActions runat="server" access...
配置SharePoint站点的域认证和表单认证双重认证(完整
如何更改服务帐户和服务帐户密码,在 SharePoint 服务器 2007年和 Windows SharePoint Services 3.0 若要更改在 SharePoint 服务器 2007年以及 Windows SharePoint Services 3.0 中的服务帐户密码,请按照下列步骤。
AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010
这为用户提供了一种在他们找到其他文件的相同位置访问SharePoint数据的简便方法,从而促进了组织内和跨组织的协作和共享。 用户可以使用桌面客户端,移动应用程序或Web界面,并在SharePoint上注释,标记,共享...
修改SharePoint的启动管理员。 如原应用池里的管理员修改密码,或者需要更换成新的管理员。可以把原来的管理员修改成新加的。
讲述在SharePoint中,如何配置站点的域认证和表单认证双重认证,图文并茂一步一步介绍配置。
适合sharepoint2010初学者,一些不错的简单源代码示例。
用于安装 SharePoint 的帐户必须至少在每台服务器上是本地管理员和 SQL sysdbo 或至少具有 SQL DB Creator 和安全管理员权限测试:SharePoint Foundation 2013 SP1 SharePoint Standard 2013 SP1 SharePoint Enterpr
SharePoint Foundation和SharePoint Server的区别
SharePointProject无问题的代码
存储在数据库里的SharePoint页面是不能直接添加后台代码的,这给我们带来了很多的不方便,比如想要在页面上实现一些东西,都必须使用Webpart或者自定义控件的方式,哪怕仅仅是很简单的几行后台代码。而WSS 3.0 是...
SharePoint 2010项目:罗盖特(ROQUETTE)BOM项目设计文档和源代码 这个项目被Dell的David 张鹏 坑爹了哈 所以把源代码和文档奉献给大家
sharepoint 2010 101个实例代码