SharePoint 改动passwordWeb Part部署方案

版权声明:本文为博主原创文章。未经博主同意不得转载。

https://blog.csdn.net/u012025054/article/details/31773231

SharePoint 改动passwordWeb Part部署方案

1. 以管理员身份打开Visual Studio2010,新建项目,模板选择SharePoint2010,平台选择.NET Framework 3.5, 新建空白SharePoint项目。编辑名称changePWD及位置,点击确定。
SharePoint 改动passwordWeb Part部署方案
2. 弹出SharePoint 自己定义向导。

填写预调试网站,点击验证。验证成功后,选择“部署为场解决方式”。点击确定。

SharePoint 改动passwordWeb Part部署方案
3. 右键点击changePWD,加入----新建项,选择可视Web部件passwordChange。
SharePoint 改动passwordWeb Part部署方案
4. 在解决方式资源管理器中,右键单击引用,加入引用。在.NET选项卡选择System.DirectoryServices.AccountManagement。
SharePoint 改动passwordWeb Part部署方案
5. 编辑代码。
passwordChange.cs:
using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls; namespace changePWD.passwordChange
{
[ToolboxItemAttribute(false)]
public class passwordChange : WebPart
{
// 当更改可视 Web 部件项目项时,Visual Studio 可能会自己主动更新此路径。 private const string _ascxPath = @"~/_CONTROLTEMPLATES/changePWD/passwordChange/passwordChangeUserControl.ascx"; public string _domainName;
[Personalizable(PersonalizationScope.Shared)]
[WebBrowsable(true)]
[Category("自己定义设置")]
[WebDisplayName("请输入域server的计算机全名。 如smallville-pc")] public string DomainName
{
get { return _domainName ? ? (_domainName = "smallville-pc"); }//这里是域名
set { _domainName = value; }
}
protected override void CreateChildControls()
{
Control control = Page.LoadControl(_ascxPath);
Controls.Add(control);
}
}
}
passwordChangeUserControl.ascx :
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="passwordChangeUserControl.ascx.cs" Inherits="changePWD.passwordChange.passwordChangeUserControl" %>

更改password注意事项:

1.password必须包括下面三部分:字母,数字,特殊符号
2.password长度必须大于6位
3.新password不能与近期5次使用的password同样
4.一天之内仅仅同意改动一次password。
5.password改动后有5分钟的缓冲时间。5分钟后旧password作废。

6.发生更改password遗失,请联系系统管理员
7.联系邮箱ContactMe@126.com

username:  
     
输入旧password
输入新password  
再次输入新password
     

 

passwordChangeUserControl.ascx.cs :
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.Security;
using System.DirectoryServices.AccountManagement;
using Microsoft.SharePoint; namespace changePWD.passwordChange
{
public partial class passwordChangeUserControl : UserControl
{
#region 字符串
string domainName = string.Empty;
string logName = string.Empty;
string splited = string.Empty;
#endregion #region methods
protected void Page_Load(object sender, EventArgs e)
{
domainName = ((passwordChange)Parent).DomainName;
logName = SPContext.Current.Web.CurrentUser.LoginName; if (logName.IndexOf("\\") >= 0)
{ splited = logName.Split('\\')[1]; } SplitedLabel.Text = splited;
} #region 主要功能实现
protected void OKButton_Click(object sender, EventArgs e)
{
string oldpwd = OldCode.Text;
string newpwd = NewCode2.Text; OKButton.Page.Validate(); if (OKButton.Page.IsValid)
{ try
{
PrincipalContext context = new PrincipalContext(ContextType.Domain, domainName, splited, oldpwd);
UserPrincipal currentPrincipal = UserPrincipal.FindByIdentity(context, splited); SPSecurity.RunWithElevatedPrivileges(delegate() //提升权限运行
{
currentPrincipal.ChangePassword(oldpwd, newpwd);
currentPrincipal.Save();
}); StaLabel.Text = "password改动成功";
}
catch (PasswordException pder)
{
StaLabel.Text = "PWD:[" + pder.Message + "]";
}
catch (Exception aner)
{
StaLabel.Text = "password改动错误:[" + aner.Message + "]";
}
}
else
{
StaLabel.Text = "按提示更改所填信息";
}
}
#endregion protected void ClearButton_Click(object sender, EventArgs e)
{
OldCode.Text = string.Empty;
NewCode1.Text = string.Empty;
NewCode2.Text = string.Empty; } #endregion
}
}

6. 点击生成菜单。选择部署解决方式.

7. 在页面上加入此Web部件。
SharePoint 改动passwordWeb Part部署方案
上一篇:俄罗斯画师Mikhail Rakhmatullin作品


下一篇:javascript oop深入学习笔记(二)--javascript的函数