在SharePoint中修改AD用户密码的WebPart

1、在默认网站发布一个虚拟目录

       目录名称为:IISADMPWD。

       地址: C:/WINDOWS/system32/inetsrv/iisadmpwd。

       设置允许执行asp。

       设置aexp2.asp或者aexp4.asp为起始页面。

       修改aexp2.asp内的代码 form中的"https://" 为"http://"。

       (如果想要https的安全证书服务,可上网查询具体的设置,但是一般无此必要。)

       运行aexp2.asp,可以看到已经可以修改密码了。

 

 

2、添加 "网页查看器" webpart(该操作可以通过一个ifram来替代) ,编写网页的地址为 aexp2.asp的http://网址

     ,到此为止已经可以修改密码了。

    

     用iframe替代的源码:

      <div id="WebPartWPQ2" width="100%"  style="height:280px;overflow:auto;" >
     
      <iframe title="网页查看器 Web 部件" frameBorder="0" id="iframe1" name="MSOPageViewerWebPart_WebPartWPQ2" width="100%" height="100%" src="http://192.168.0.55/IISADMPWD/aexp2.asp" >
     <div class="UserGeneric">当前浏览器不支持包含 IFRAME 元素的网页。若要使用此 Web 部件,必须使用支持该元素的浏览器,例如 Internet Explorer 5 或更高版本。</div>
    </iframe>
 </div>

 

 

3、如果想要自动添加用户,可以添加以下代码。

     编写一个webpart

     代码如下:

    

         public class CurrentUser : System.Web.UI.WebControls.WebParts.WebPart
    {
        public CurrentUser()
        {
            this.ExportMode = WebPartExportMode.All;
        }
        protected override void CreateChildControls()
        {
            StringBuilder strUser = new StringBuilder();
            strUser.Append("<span id='UserNameDiv' >" + Environment.UserName + "</span>");
            this.Controls.Add(new LiteralControl(strUser.ToString()));
        }
    }

    注*:加入此webpart到需要修改密码的页面(将来要隐藏起来的)。

 

    添加js代码到页面:

     <script type="text/javascript">
      var UserNameDiv=document.getElementById('UserNameDiv');
       var iframe1= document.getElementById('iframe1');
       iframe1.src='http://192.168.0.55/IISADMPWD/aexp2.asp?'+UserNameDiv.innerText;
      </script>

 

 

    修改axep2.asp代码

 

    
<HTML>

 


<title>修改密码</title>

<FONT COLOR=FFFFFF>
<style type="text/css">
<!--
.STYLE1 {
 font-size: 14px;
 color: #333333;
}
.tc {
 padding-right: 15px;
}
-->
</style>
</FONT>

<head>
  <META HTTP-EQUIV="Content-Type" Content="text/html; charset=gb2312">
</head>

<BODY BGCOLOR=#FFFFFF LINK=000000 VLINK=000000>

 

 

<p>

<form method="POST" action="https://192.168.0.55/iisadmpwd/achg.asp?vaio">

<table width="339" height="247" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="339" height="247" align="center" valign="top" class="tc"><br /><br/>
        <table width="100%" height="180" border="0" cellpadding="0" cellspacing="0">

      <tr id='userTr'>
        <td height="30" align="right" valign="middle" width='139'><span class="STYLE1">帐户:</span></td>
        <td width="200" height="30" align="left" valign="middle"><input id='userId' type="text" name="acct" autocomplete="off" style='width:145px;' value="
"></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle"><span class="STYLE1">旧密码:</span></td>
        <td width="150" height="30" align="left" valign="middle"><input type="password" name="old" value="" width='152px'></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle"><span class="STYLE1">新密码:</span></td>
        <td width="150" height="30" align="left" valign="middle"><input type="password" name="new" value=""></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle"><span class="STYLE1">确认新密码:</span></td>
        <td width="150" height="30" align="left" valign="middle"><input type="password" name="new2" value=""></td>
      </tr>
      <tr>
        <td height="30" align="right" valign="middle">&nbsp;</td>
        <td height="30" align="left" valign="middle">
    <table border="0" cellpadding="0" cellspacing="0">
      <tr>
     <td align="left" width='80px'><input id='lok' type="submit" value="确定" style="width: 65px">
  
    
     </td>
   <td align="right"><input type="reset" value="重置" style="width: 65px;">
     </td>
   </tr>
    </table>
 
           
         </td>
      </tr>
    </table></td>
  </tr>
</table>

 

<script>
var urlList= window.location.href;
var url=urlList.split("?");
if(url.length>1)
{
 var userName=url[1];
 var user= document.getElementById('userId');
 user.value=userName;
 var userTr= document.getElementById('userTr');
 userTr.style.display='none';
}

</script>
</form>

</body>
</html>

 


  至此全部完成。如果出现密码过短的提示,注意修改下策略就可以了。

很多iis用户还记得在早期的iis版本上有一个web应用, iisadmpwd. 该应用是与iis5 和iis6一起发布的. 主要用于为域用户提供修改密码的功能, 同时也可以修改本机用户密码. 但是这个功能包含在iis7/7.5. 在iis 7及以上版本, 微软不再提供这个web应用的支持. 虽然该功能没有与iis7/7.5一起发布, 但通过一些简单的配置还是可以使用该功能,本文将介绍如何在iis7/7.5配置iisadmpwd的web 应用. 注意 : 本文只是介绍如何在iis7/7.5配置iisadmpwd的web 应用. 由于该功能已经在iis7及以上版本的被遗弃, 微软不会对iis7及以上版本的iisadmpwd提供支持. 步骤 由于iisadmpwd的web 应用不再被iis7及以上版本所支持. 在一个干净的windows server 2008 是没法找到这个文件. 所以需要从一台windows server 2003找到并且将文件复制到windows server 2008上. 1. 默认情况下, iisadmpwd放置在windows server 2003服务器的如下路径 : c:\windows\system32\inetsrv\iisadmpwd . 如果没有找到该路径, 你需要先在windows server 2003上安装iis服务. 注意 : 如果您在iis7/7.5的网站应用是64位, 您需要copy一个64位版本的iisadmpwd. 如果是32位, 同样需要copy一个32位的iisadmpwd. 在x64的windows server 2003, 32位的iisadmpwd位于%windir%\syswow64\inetsrv\iisadmpwd . 2. 将iisadmpwd的文件copy到windows server 2008服务器后,需要注册iispwcchg.dll. 1) 用admin的权限打开一个命令窗口. 2) 执行以下命令 : regsvr32 c:\windows\system32\inetsrv\iisadmpwd\iispwchg.dll 其c:\windows\system32\inetsrv\iisadmpwd\ 是iisadmpwd的放置路径. 3. 其次, 需要设置metabase的password changeflags. 以运行修改密码的功能 : 1) 用admin的权限打开一个命令窗口. 2) 打开到如下路径 : c:\inetpub\adminscripts 如果你没能找到这个路径, 请先启用iis的iis 6 scripting tools feature. 请参考 : http://msdn.microsoft.com/library/ms751518.aspx 3) 输入以下命令 : cscript.exe adsutil.vbs set w3svc/password changeflags value 4) 下面是对value的定义 : 0 : 默认值. 该值代表你必须启用ssl来修改密码. 1: 允许非安全的port来修改密码. 如果你没有启用ssl, 同时又需要 此文来自: 马开东博客 转载请注明出处 网址: http://www.makaidong.com 修改密码的功能, 可以使用该值. 2 : 关闭修改密码的功能. 4 : 关闭 “advance notification of password expiration”. 4.打开iis管理器. 展开需要加入该功能的网站. 右键点击该网站, 在弹出菜单add virtual directory. 5. 在配置好virtual directory之后, iisadmpwd就可以使用了. 6. 关于iisadmpwd几个页面的功能, 可以参考http://blogs.msdn.com/b/friis/archive/2009/03/24/setting-up-the-iis-6-password -change-site-iisadmpwd.aspx test.asp 包括了iisadmpwd页面上所显示的文字和label. 如果需要修改asp页面上所显示的内容, 可以修改该页面的定义. achg.asp 用于执行修改密码请求的页面. aexp.asp 该页面会默认情况下会为iis显示那些密码已经过期的用户. 通过配置iis metabase的”authexpiredurl”, 可以使用该页面. aexp2.asp 用于修改iis本机用户密码. aexp2b.asp 用于修改用户密码. 默认情况下, 该页面会使用ssl对会话进行加密. 如果你没有启用ssl功能, 请求会失败. aexp3.asp 类似于aexp.asp. 不需要使用ssl 如果想使用aexp2.asp页面来修改用户密码, 但是又不想启用ssl. 你可以按照下面的方法来进行修改. 但是我们不推荐该方法. 因为, 如果没有ssl的加密保护, 密码是明文的在网络间传递, 很容易被截获. 1. 用notepad打开aexp2.asp. 2. 找到 <form method="post" action="https://<%=server.htmlencode(request.servervariables("server_name"))%>/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>"> 3. 将https://修改为http:// , 如下 : <form method="post" action="http://<%=server.htmlencode(request.servervariables("server_name"))%>/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>"> 同样的, 如果启用了ssl,但是使用了非默认的443端口, 也在条语句加入对应的端口号. 例如使用的是445端口 : <form method="post" action="https://<%=server.htmlencode(request.servervariables("server_name"))%>:445/iisadmpwd/achg.asp?<%=server.htmlencode(request.querystring)%>">
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值