修改MOSSAD用户密码或本地用户密码

     sharepoint2007的功能之强大,大家有目共睹。但其自身总会存在一些瑕疵.许多人在抱怨产品组怎么不一起开发个修改密码的页面呢?其实这些只要我们自己动手就可以轻易的解决了。以下就是本次的Demo.
     前期准备:1.去MSDN查看DirectoryEntry,DirectorySearcher相关的属性和方法及使用。
                   2.新建一个web项目导入Microsoft.sharepoint 以及System.DirectoryServices。
                   3.打开项目属性,生成后事件:

                   copy "$(TargetDir)*.dll" C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin
                   copy "$(ProjectDir)*.ascx" C:\Inetpub\wwwroot\wss\VirtualDirectories\80   \wpresources\changepassword

  
Demo图片:
修改MOSSAD用户密码或本地用户密码 

修改MOSSAD用户密码或本地用户密码 

修改MOSSAD用户密码或本地用户密码 
修改MOSSAD用户密码或本地用户密码            
修改MOSSAD用户密码或本地用户密码      
Demo代码:

  1 using  System;
  2 using  System.Data;
  3 using  System.Configuration;
  4 using  System.Collections;
  5 using  System.Web;
  6 using  System.Web.Security;
  7 using  System.Web.UI;
  8 using  System.Web.UI.WebControls;
  9 using  System.Web.UI.WebControls.WebParts;
 10 using  System.Web.UI.HtmlControls;
 11 using  Microsoft.SharePoint;
 12 using  System.DirectoryServices;
 13 namespace  ChangeADPasswordByVan
 14 {
 15    public partial class ChangePassWord : System.Web.UI.UserControl
 16    {
 17        protected void Page_Load(object sender, EventArgs e)
 18        {
 19            BindUserName();
 20        }

 21
 22        //获取当前用户的登录名和名字
 23        public void BindUserName()
 24        {
 25            SPUser currentuser = SPContext.Current.Web.CurrentUser;
 26            lb_username.Text = currentuser.Name;
 27            lb_userloginname.Text=currentuser.LoginName;
 28        }

 29
 30        protected void btn_change_Click(object sender, EventArgs e)
 31        {
 32            string UserName = lb_username.Text;
 33            string[] DomainName = lb_userloginname.Text.ToString().Split(new char[] '\\' });
 34           //获取域名
 35            string _DomainName = DomainName[0].ToString();
 36            string oldpass = txt_oldpassword.Text;
 37            string newpass = txt_newpasword.Text;
 38            if (txt_newpasword.Text != txt_newpassword1.Text)
 39            {
 40                lb_mesage.Text = "新密码不一致!";
 41            }

 42            else
 43            {
 44                //如果本机机器名和域名相同,就为本机用户。否则为域用户
 45                if (System.Environment.MachineName == Environment.UserDomainName)
 46                  {
 47
 48                        SPSecurity.RunWithElevatedPrivileges(delegate()
 49                        {
 50
 51                            lb_mesage.Text = ChangeLocalUserPassword(Environment.MachineName, UserName, oldpass, newpass, """");
 52
 53                        }
);
 54                   }

 55                 else
 56                  {
 57
 58                        lb_mesage.Text = ChangeADUserPassword(_DomainName, UserName, oldpass, newpass);
 59                  }

 60            
 61              
 62            }

 63
 64
 65        }

 66
 67        protected void btn_cansle_Click(object sender, EventArgs e)
 68        {
 69            txt_newpassword1.Text = "";
 70            txt_newpasword.Text = "";
 71            txt_oldpassword.Text = "";
 72        }

 73       
 74        更改密码主要代码(本代码段,参考DosBoy
123
124    }

125}

Demo源码

 1 <% @ Control Language = " C# "  AutoEventWireup = " true "  CodeBehind = " ChangePassWord.ascx.cs "  Inherits = " ChangeADPasswordByVan.ChangePassWord "   %>
 2 < table border = " 1 "  cellpadding = " 0 "  cellspacing = " 0 "  style = " width:350px " >
 3      < tr >
 4          < td style = " width:138px; height: 30px; " >
 5             当前用户: </ td >
 6          < td style = " height: 30px; background:#EBF3FF " >
 7              < asp:Label ID = " lb_username "  runat = " server "  Text = "" ></ asp:Label ></ td >
 8      </ tr >
 9      < tr >
10          < td style = " width:138px; height: 30px; " >
11             登入名: </ td >
12          < td style = " height: 30px; background:#EBF3FF " >
13              < asp:Label ID = " lb_userloginname "  runat = " server "  Text = "" ></ asp:Label ></ td >
14      </ tr >
15     < tr >
16          < td style = " width:138px; height: 30px; " >
17             旧密码 < span style = " color: #ff0000 " >*</ span > </ td >
18             < td style = " height: 30px; background:#EBF3FF " >
19                  < asp:TextBox ID = " txt_oldpassword "  runat = " server "  TextMode = " Password " ></ asp:TextBox ></ td >
20      </ tr >
21      < tr >
22          < td style = " width:138px; height: 30px; " >
23             新密码 < span style = " color: #ff0033 " >*</ span > </ td >
24             < td style = " height: 30px; background:#EBF3FF " >
25                  < asp:TextBox ID = " txt_newpasword "  runat = " server "  TextMode = " Password " ></ asp:TextBox ></ td >
26      </ tr >
27      < tr >
28          < td style = " width:138px; height: 30px; " >
29             再次输入新密码 < span style = " color: #ff0000 " >*</ span > </ td >
30             < td style = " height: 30px; background:#EBF3FF " >
31                 < asp:TextBox ID = " txt_newpassword1 "  runat = " server "  TextMode = " Password " ></ asp:TextBox ></ td >
32      </ tr >
33      < tr >
34          < td style = " width:100%; " colspan = " 2 " >
35              < asp:Button ID = " btn_change "  runat = " server "  Text = " 修改 "  OnClick = " btn_change_Click "   />
36              < asp:Button ID = " btn_cansle "  runat = " server "  Text = " 取消 "  OnClick = " btn_cansle_Click "   />
37              < asp:Label ID = " lb_mesage "  runat = " server "  ForeColor = " Red " ></ asp:Label ></ td >
38      </ tr >
39 </ table >
40

  

你可能感兴趣的:(OS)