随笔-41  评论-387  文章-0  trackbacks-27
代码下载:http://files.cnblogs.com/esestt/changepassword.rar

这个东西以前就很多人写过,我最近刚好要用到,在网上搜索,居然发现没有可直接提供下载的,夸张的是国外一些网站居然还要收费下载。我自己写了一个WebPart,放出源代码下载。想修改的样式的,自己去做好了。代码很简单,大家一看就明白。
主要是继承System.Web.UI.WebControls.WebParts.WebPart或Microsoft.SharePoint.WebPartPages.WebPart类。然后通过Microsoft.SharePoint.WebControls.SPControl获取登陆用户,再使用System.DirectoryServices.DirectoryEntry修改AD用户密码。

下面说一下WebPart部署方法。

WebPart部署

将编译好的库文件复制到SharePoint网站主目录下的Bin文件夹,默认的情况下一般是<Driver>\Inetpub\wwwroot\wss\VirtualDirectories\xxxx\bin\xxxx是端口。实在不知道的话,可以在IIS中看到。比如像我这里是将ChangePassword.dll文件复制到800端口网站目录。
    

GAC中注册。可以使用gacutil.exe注册,不过最简单的方法就是将库文件拖到C:\WINDOWS\assembly目录中,在这个目录中还可看到程序基的版本、区域、公钥标记等信息。

SharePoint网站主目录(<Driver>\Inetpub\wwwroot\wss\VirtualDirectories\xxxx\)中,打开web.config文件,在SafeControls节点下加入:<SafeControl Assembly="ChangePassword, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d1b23841d356609d" Namespace="ChangePassword" TypeName="*" Safe="True" />

SPS站点设置中点“Web部件”


新建Web部件,选择要加入的WebPart控件,然后点导入库


在页面中加入此WebPart就可以使用了

posted on 2007-07-22 14:30 Cheney Shue 阅读(2877) 评论(13)  编辑 收藏 所属分类: SharePointWeb

评论:
#1楼  2007-07-22 14:44 | 亚历山大同志      
貌似把AdMembershipProvider加到表单验证的Provider里面,然后在一个
空白页面上加一个修改密码的ASP.NET控件,也可以让用户在登录後修改AD的密码
,不过貌似必须使用Form认证来登陆了,不过好处就是一句代码都不需要写
  回复  引用  查看    
#2楼 [楼主] 2007-07-22 14:53 | Cheney Shue      
@亚历山大同志
听说过,还有一种是加入某个自带的Web页面的方法也可以不用代码 :)
  回复  引用  查看    
#3楼  2007-07-22 15:45 | Zhongkeruanjian      
问下:我部署了Ad和Wss3.0,但是我登录域后,打开文档,但是IE还是提示我要输入用户名和密码(输入域帐号和用户名就可以登录),而且我现在不能自定义网页,是什么原因?
  回复  引用  查看    
#4楼 [楼主] 2007-07-22 21:58 | Cheney Shue      
@Zhongkeruanjian
你是在哪里不能自定义网页?是在SPS网站中编辑页面还是用SharePoint Designer编辑?
  回复  引用  查看    
#5楼  2007-07-23 09:43 | Zhongkeruanjian      
感谢你的回复,错误是这样的:

在某个网站的首页上“修改共享网页”的“设计此网页”,然后WSS会列表当前可用的部件,当我把某个部件拖到首页上时,提示:

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
  回复  引用  查看    
#6楼 [楼主] 2007-07-23 19:41 | Cheney Shue      
@Zhongkeruanjian
不好意思啊,这个问题我没碰到过,帮不了你啦
  回复  引用  查看    
#7楼  2007-07-24 09:50 | RunSir      
有一个问题,当用户没有登陆的时候,会显示web部件错误.
  回复  引用  查看    
#8楼  2007-08-06 17:19 | hugh [未注册用户]
为什么老是报错
密码错误,或者新密码不符合域密码策略
我已经在域安全设置里面把密码策略关了。
谢谢!
  回复  引用    
#9楼 [楼主] 2007-08-06 21:37 | Cheney Shue      
@hugh
我之前发现过一个问题,用系统管理员身份登陆SharePoint,用SPControl无法获取AD中的用户名,你是否是这种情况,使用其它用户登录试试。
  回复  引用  查看    
#10楼  2007-09-20 14:45 | dann [未注册用户]
确实有效果!!
不错!顶一个!
  回复  引用    
#11楼  2007-12-20 17:09 | hejt [未注册用户]
密码错误,或者新密码不符合域密码策略
我也遇到这个错误,我换其他用户登陆不能修改。
域安全设置里面也把密码策略关了
  回复  引用    
#12楼  2008-05-12 12:33 | wjing [未注册用户]
thank you
  回复  引用    
#13楼  2008-06-05 11:20 | singlelizi [未注册用户]
多谢搂主,我按照搂主的方法设置了一番,修改密码的web部件是出现在主页上了,但是我怎么修改密码都提示"密码错误,或者新密码不符合域密码策略",我能确定我输的密码没错,另外域控制器的密码策略复杂性要求我已经修改过了,我尝试在域服务器的用户管理里修改密码,这个将要设置上去的新密码,是可以设置成功的,说明此密码符合密码策略.实在是想不出为什么,页面上回报这样的错位,请楼主帮忙分析一下,感激

  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-08-06 09:52 编辑过


相关链接: