八教程网知识的定义是什么,知识指的是什么,百科知识大全

首页 > 软件教程 / 正文

SharePoint2013 以其他用户登录和修改AD域用户密码的功能使用介绍

admin 2021-07-09 软件教程 评论

  sharepoint默认是没有修改AD密码 和切换 用户的功能,这里我用future的方式来实现。

  部署wsp前:

  部署后:

  点击以其他用户身份登录

  点击修改用户密码:

  这里的扩展才菜单我们用CustomAction来实现,我们需要添加空项目来部署它

  以其他用户身份登录得xml如下:

  修改用户密码的xml如下:

  这里我们需要新建一个应用程序页面,首先需要添加路径映射:

  添加应用程序页面的代码如下:

  <%@AssemblyName="$SharePoint.Project.AssemblyFullName___FCKpd___0quot;%><%@ImportNamespace="Microsoft.SharePoint.ApplicationPages"%><%@RegisterTagprefix="SharePoint"Namespace="Microsoft.SharePoint.WebControls"Assembly="Microsoft.SharePoint,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"%><%@RegisterTagprefix="Utilities"Namespace="Microsoft.SharePoint.Utilities"Assembly="Microsoft.SharePoint,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"%><%@RegisterTagprefix="asp"Namespace="System.Web.UI"Assembly="System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"%><%@ImportNamespace="Microsoft.SharePoint"%><%@AssemblyName="Microsoft.Web.CommandUI,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"%><%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="ChangePassword.aspx.cs"Inherits="SharePointProjectDemo.Layouts.ChangePassword.ChangePassword"DynamicMasterPageFile="~masterurl/default.master"%>

修改密码

域 : 旧密码 : 新密码 : 确认新密码 :

 
修改密码修改密码 usingSystem;usingMicrosoft.SharePoint;usingMicrosoft.SharePoint.WebControls;usingSystem.Security.Principal;usingSystem.DirectoryServices.AccountManagement;namespaceSharePointProjectDemo.Layouts.ChangePassword {publicclassImpersonator {//Fields privateWindowsImpersonationContextctx=null;//Methods publicvoidBeginImpersonation() {try {if(!WindowsIdentity.GetCurrent().IsSystem) {this.ctx=WindowsIdentity.Impersonate(WindowsIdentity.GetCurrent().Token);this.IsImpersonated=true; } }catch {this.IsImpersonated=false; } }publicvoidStopImpersonation() {if(this.ctx!=null) {this.ctx.Undo(); } }//Properties publicboolIsImpersonated {set;get; } }publicpartialclassChangePassword:LayoutsPageBase {protectedvoidbtnChangePwd_Click(objectsender,EventArgse) {stringstr=this.txtPass1.Text.Trim();stringstr2=this.txtPass2.Text.Trim();stringstr3=this.txtOld.Text.Trim();stringstr4=this.txtdomain.Text.Trim();if(string.IsNullOrWhiteSpace(str4)) {this.ltMsg.Text="域不能为空!"; }elseif(string.IsNullOrWhiteSpace(str3)) {this.ltMsg.Text="旧密码不能为空!"; }elseif(string.IsNullOrWhiteSpace(str)) {this.ltMsg.Text="新密码不能为空!"; }elseif(str==str2) {this.ChangeUserPassword(this.txtPass2.Text.Trim(),str3,str4); }else {this.ltMsg.Text="两次新密码不一致,请检查!"; } }privatevoidChangeUserPassword(stringNewPwd,stringOldPwd,stringdomain) {try { Impersonatorimpersonator=newImpersonator(); impersonator.BeginImpersonation();using(PrincipalContextcontext=this.GetPContext(OldPwd,domain)) {using(UserPrincipalprincipal=UserPrincipal.FindByIdentity(context,IdentityType.SamAccountName,GetLoginName())) { principal.ChangePassword(OldPwd,NewPwd); } }if(impersonator.IsImpersonated) { impersonator.StopImpersonation();this.ltMsg.Text="已成功修改密码!"; }else {this.ltMsg.Text="无法修改您的密码,请联系您的系统管理员!"; } }catch(Exceptionexception) {this.ltMsg.Text=exception.Message; } }privatestringGetDomainContainter(stringdomain) {stringstr=string.Empty;string[]strArray=domain.Split(newchar[]{'.'},StringSplitOptions.RemoveEmptyEntries);foreach(stringstr2instrArray) { str=str+"DC="+str2+","; }if(str.Length>0) { str=str.Substring(0,str.Length-1); }returnstr; }privatestringGetLoginName() {stringusername=SPContext.Current.Web.CurrentUser.LoginName.Replace("i:0#.w|","");if(username.EndsWith(@"system")) { username=username.Replace("system","sherry"); }returnusername; }privatestringGetLoginNameDomain() {string[]strArray=GetLoginName().Split(newchar[]{''},StringSplitOptions.RemoveEmptyEntries);if(strArray.Length==2) {returnstrArray[0]; }returnnull; }privatePrincipalContextGetPContext(stringOldPwd,stringdomain) {returnnewPrincipalContext(ContextType.Domain,domain,this.GetDomainContainter(domain),ContextOptions.Negotiate,this.GetLoginName(),OldPwd); }protectedvoidPage_Load(objectsender,EventArgse) {this.ltMsg.Text=GetLoginName().Replace("i:0#.w|",""); } } }

 

Tags:

猜你喜欢

留言与评论(共有 0 条评论)
   
验证码:
搜索
网站分类
标签列表