一个简单的sharepoint密码修改webpart
2015-06-29 01:14
381 查看
最近做了一个简单的sharepoint webpart开发,功能很简单,就实现FBA密码修改。sharepoint 是默认是没有密码修改功能的,可能是因为账号来源可以任意配置的原因。
如何创建webpart,请参照/article/4740385.html的博文。
下面是关键代码
1.引用
2.实现
以上代码有参考:
https://sharepoint2010fba.codeplex.com/
https://fbachangepassword.codeplex.com/
总结:
其中最核心的是:Membership.Providers[ProviderName].ChangePassword( web.CurrentUser.Name,TextBox1.Text.Trim(),TextBox3.Text.Trim());
Membership.Providers[ProviderName] 还有ResetPassword函数,不过是自动随机密码,参考的例子就是用这个方法。
如何创建webpart,请参照/article/4740385.html的博文。
下面是关键代码
1.引用
using Microsoft.SharePoint; using System.Web.Security; using System.Web; using Microsoft.SharePoint.Utilities; using Microsoft.SharePoint.Administration;
2.实现
protected void Button1_Click(object sender, EventArgs e) { ResetPassword(); } private void ResetPassword() { SPWeb web = SPContext.Current.Web; SPSecurity.RunWithElevatedPrivileges(delegate() { try { String ProviderName = GetMembershipProvider(Context);//取得认证提供者名称 //web.CurrentUser.Name为当前用户名,textbox1为旧密码,Textbox3为新密码 bool re = Membership.Providers[ProviderName].ChangePassword( web.CurrentUser.Name,TextBox1.Text.Trim(),TextBox3.Text.Trim()); if (re) { lable1.Text = "success";//更改成功 } else { lable1.Text = "false"; } } catch (SPException spex) { lable1.Text = spex.Message; } catch (Exception ex) { lable1.Text = ex.Message; } }); } public static string GetMembershipProvider(HttpContext context) { using (SPSite site = new SPSite(SPUtility.GetPageUrlPath(context))) { return GetMembershipProvider(site); } } public static string GetMembershipProvider(SPSite site) { // get membership provider of whichever zone in the web app is fba enabled SPIisSettings settings = GetFBAIisSettings(site); if (settings == null) return null; return settings.FormsClaimsAuthenticationProvider.MembershipProvider; } private static SPIisSettings GetFBAIisSettings(SPSite site) { SPIisSettings settings = null; // try and get FBA IIS settings from current site zone try { settings = site.WebApplication.IisSettings[site.Zone]; if (settings.UseFormsClaimsAuthenticationProvider) return settings; } catch { // expecting errors here so do nothing } // check each zone type for an FBA enabled IIS site foreach (SPUrlZone zone in Enum.GetValues(typeof(SPUrlZone))) { try { settings = site.WebApplication.IisSettings[(SPUrlZone)zone]; if (settings.UseFormsClaimsAuthenticationProvider) return settings; } catch { // expecting errors here so do nothing } } // return null if FBA not enabled return null; }
以上代码有参考:
https://sharepoint2010fba.codeplex.com/
https://fbachangepassword.codeplex.com/
总结:
其中最核心的是:Membership.Providers[ProviderName].ChangePassword( web.CurrentUser.Name,TextBox1.Text.Trim(),TextBox3.Text.Trim());
Membership.Providers[ProviderName] 还有ResetPassword函数,不过是自动随机密码,参考的例子就是用这个方法。
相关文章推荐
- IDNFeedParser 一个简单易用的Rss解析库(Objective-C)
- 枚举、typedef关键字
- 分布式数据库 Hbase 的高可用管理和监控
- zookeeper的单机安装和集群安装
- JavaScript中的getBoundingClientRect()方法
- PAT Maximum subsequence sum (Python)
- 权威支持: 用于实际故障诊断的功能和工具
- mongodb固定集合,建立管理员安全验证
- 使用xib开发界面
- android 图片合成
- PAT Shuffling machine (Python)
- 程序猿的修炼之路(一)
- SpringMVC莫名其妙出现No bean named 'cacheManager' is defined错误
- [Swust OJ 360]--加分二叉树(区间dp)
- 关于Android Studio第一次启动的Fetching android sdk component information的解决方法
- freemarker.core.InvalidReferenceException: Expression stackObject.value.get(propertyName).toString() is undefined
- iOS开发之xib技巧介绍
- JS解析XML通用版
- Android Chromium WebView学习启动篇
- POJ 1679 The Unique MST 确定MST是否唯一