在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);
}
分享到:
相关推荐
在本场景中,我们关注的是一个特定的Web部件,它允许用户在SharePoint页面上直接修改Active Directory(AD)域中的账号密码。这个Webpart是一个预先构建的解决方案,名为"Sharepoint中修改AD账号密码webpart",它为...
标题提到的"SharePoint中修改密码的WEB Part之终极版"是一个定制的Web部件,它集成了AD和本机用户密码修改功能,为用户提供了一站式的解决方案。接下来,我们将深入探讨这个Web Part的功能、实现原理以及可能的应用...
当AD域中的用户密码需要更改时,这会影响到用户在SharePoint站点上的登录和访问权限。本文将深入探讨如何修改AD密码以及在SharePoint 2013中切换用户,以便以其他用户的身份登录。 1. **AD密码修改流程**: - 打开...
本篇文章将详细解析如何隐藏SharePoint列表中的操作项。 首先,我们要了解`<SharePoint:SiteActions>`控件。它是SharePoint中用于呈现站点动作菜单的关键组件,这个菜单通常包含编辑页面、创建新内容、查看所有站点...
总结来说,要实现在SharePoint 2021中以其他用户登录和修改AD域用户密码,开发者需要具备SharePoint自定义开发能力,包括理解CustomAction、应用程序页面的创建以及与AD交互的逻辑。通过这样的自定义开发,可以增强...
SharePoint 2013的修改域用户密码WebPart,而海外公司的老外又有这方面的强烈需求,公司的Sharepoint集成供应商没法提供Sharepoint 2013的修改密码解决方案,因此经过几天的深入专研,解决了多域环境下修改域用户...
然后,在高级模式下编辑文件,找到 `<SharePoint:AspMenu>` 标签,并将其替换为 `<SharePoint:SPHierarchyDataSourceControl>` 和 `<SharePoint:SPTreeView>`标签。 `<SharePoint:SPHierarchyDataSourceControl>` ...
总结起来,配置SharePoint站点的域认证和表单认证双重认证涉及到多个步骤,包括创建和配置表单认证数据库、扩展Web应用程序以及修改Web.config文件以支持两种认证方式。这种配置提供了更广泛的用户访问控制,能够...
3. **事件处理程序**:SharePoint支持事件处理,允许开发者在特定操作(如文档上传、列表项修改等)发生时执行自定义代码。通过编写事件接收器或事件处理器,可以实现对SharePoint对象模型的深入控制。 4. **...
在 SharePoint 中配置域认证和表单认证双重认证,是为了满足不同环境下的安全需求。在某些情况下,企业可能需要同时使用域认证(Active Directory)和表单认证(Forms-Based Authentication,FBA)来确保内外部用户...
SharePoint 是一个由微软开发的企业级协作平台,用于团队共享文档、项目管理、知识管理和企业社交。在SharePoint环境中,应用池(Application Pool)是IIS(Internet Information Services)的一部分,用于承载...
在SharePoint环境中,尤其是WSS 3.0(Windows SharePoint Services 3.0)系统,直接在存储在数据库中的页面上添加C#后台代码是不被支持的。然而,由于WSS 3.0是建立在ASP.NET 2.0的基础之上,我们可以利用ASP.NET的...
AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010
这为用户提供了一种在他们找到其他文件的相同位置访问SharePoint数据的简便方法,从而促进了组织内和跨组织的协作和共享。 用户可以使用桌面客户端,移动应用程序或Web界面,并在SharePoint上注释,标记,共享...
本文将深入探讨如何在SharePoint中更改域密码,这对于管理员和用户来说都是一个常见的操作。 在SharePoint中,用户的登录凭证通常来源于活动目录,因此,当用户需要更改其域密码时,通常需要在AD中进行更改,而这个...
这款工具提供了对SharePoint对象模型的全面访问,允许用户查看、修改和管理SharePoint的各个组件,而无需编写任何代码。 在SharePoint 2010中,理解对象模型至关重要,因为它构成了平台的基础。SharePoint对象模型...
SharePoint Foundation 和 SharePoint Server 作为 SharePoint 家族中的两个重要成员,各自拥有独特的定位和功能。本文将详细介绍这两者的区别,帮助读者更好地理解它们之间的差异及其应用场景。 #### 二、...