SharePoint 2013 同步FBA认证用户
SharePoint 开启了基于FBA的身份认证,常常会遇到用户组用户的问题,当我加入一个AD账号。无法同一时候加入Form认证的用户,这时。仅仅能手动加入,比較麻烦;所以。写了一个服务。用来每天晚上同步一下用户组中的AD账号和Form账号。
原理
原理比較简单,就是遍历用户组的全部用户,同步的时候首先删掉全部的Form账号,然后依据全部的AD账号去查找Form账号又一次加入;假设碰到AD安全组,就去安全组中遍历全部的用户。然后查找Form账号加入,每天晚上定时运行。
长处
免去加入账号的时候加入2次。并且服务能够手动运行,定时运行等。
缺点
并不是实时同步,并且无法单独在用户组中加入Form账号,无法满足断开权限,无法满足单独依照人授权的情况。
总结
在自己的需求中,用户权限控制比較简单,均依照用户组授权。没有唯一权限设置,所以用起来还是挺好的,并且用户对于Form账号没有实时的要求。假设复杂的权限控制,还需进一步增强代码,呵呵。
效果
运行前,仅仅有AD账号和AD安全组,例如以下图:
运行后,多出了全部Form认证的账号,例如以下图:
代码片段
遍历全部用户组
1 using (SPSite site = new SPSite("http://SPServer")) 2 { 3 using (SPWeb web = site.RootWeb) 4 { 5 foreach (SPGroup group in web.Groups) 6 { 7 foreach (SPUser user in group.Users) 8 { 9 if (user.LoginName.IndexOf("custommembership") > 0) 10 { 11 group.RemoveUser(user); 12 } 13 } 14 15 foreach (SPUser user in group.Users) 16 { 17 if (user.LoginName.IndexOf("domain") > 0) 18 { 19 group.Users.Add("i:0#.f|custommembership|" + user.Email, user.Email, user.LoginName, user.Notes); 20 } 21 22 if (user.IsDomainGroup) 23 { 24 DomainGroup(group, user.Name); 25 } 26 } 27 } 28 } 29 }
去AD文件夹中查找AD账号
1 public static string DomainGroup(SPGroup group, string DomainGroupName) 2 { 3 string returnStr = string.Empty; 4 SearchResultCollection results = null; 5 6 string filter = "(&(objectClass=group)(cn=" + DomainGroupName + "))"; 7 string connectionPrefix = "LDAP://linyu.ad.com.cn"; 8 using (DirectoryEntry root = new DirectoryEntry(connectionPrefix)) 9 { 10 using (DirectorySearcher searcher = new DirectorySearcher(root)) 11 { 12 searcher.ReferralChasing = ReferralChasingOption.All; 13 searcher.SearchScope = SearchScope.Subtree; 14 searcher.Filter = filter; 15 results = searcher.FindAll(); 16 } 17 } 18 foreach (SearchResult sr in results) 19 { 20 21 DirectoryEntry deGroup = new DirectoryEntry(sr.Path); 22 System.DirectoryServices.PropertyCollection pcoll = deGroup.Properties; 23 int n = pcoll["member"].Count; 24 Console.WriteLine(n.ToString()); 25 26 for (int i = 0; i < n; i++) 27 { 28 DirectoryEntry deUser = new DirectoryEntry(connectionPrefix + "/" + pcoll["member"][i].ToString()); 29 30 string username = deUser.Name.ToString(); 31 if (username.IndexOf("=") > 0) 32 { 33 username = username.Split('=')[1]; 34 } 35 36 string email = GetProperty(deUser, "mail"); 37 if (email.IndexOf("@") > 0) 38 { 39 Console.WriteLine(username); 40 group.AddUser("i:0#.f|custommembership|" + email, email, username, ""); 41 } 42 } 43 } 44 return returnStr; 45 } 46 47 public static string GetProperty(DirectoryEntry oDE, string PropertyName) 48 { 49 try 50 { 51 if (oDE.Properties.Contains(PropertyName)) 52 { 53 return oDE.Properties[PropertyName][0].ToString(); 54 } 55 else 56 { 57 return string.Empty; 58 } 59 } 60 catch (Exception ee) 61 { 62 throw ee; 63 } 64 }
View Code
后记
思路、代码比較简单。希望给大家一个參考吧;运行过程中,能够封装成TimerJob、控制台和Windows计划任务、Windows服务等均可,看大家须要和熟悉程度吧。
好吧,就到这里。歇息。歇息一下。
。。
转载于:https://www.cnblogs.com/claireyuancy/p/6809441.html
SharePoint 2013 同步FBA认证用户相关推荐
- SharePoint 2013 表单认证使用ASP.Net配置工具添加用户
前 言 上面一篇博客,我们了解到如何为SharePoint 2013配置表单身份认证,但是添加用户是一个麻烦事儿:其实,我们还可以用Asp.Net的配置工具,为SharePoint 2013添加表单用 ...
- 【转】SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...
- SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
转:http://www.cnblogs.com/nbpowerboy/p/3355943.html 前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真 ...
- SharePoint 2013的100个新功能之网站管理(一)
一:设置盘 网站操作现在被替换为新的(设置)盘子.一些新的操作像添加一个应用.添加一个页面或设计管理器被添加而像创建网站则从菜单中移除了. 二:移除以其他用户身份登录 在SharePoint 2013 ...
- SharePoint 2013技巧分享系列 - 同步Exchange显示高清用户照片
在"SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片"文中介绍了如何同步Active Directory显示用户照片,但是同步完成后 ...
- SharePoint 2013 配置基于AD的Form认证
前 言 配置SharePoint 2013基于AD的Form认证,主要有三步: 1. 修改管理中心的web.config: 2. 修改STS Application的web.config: 3. 修改 ...
- 【FBA】SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用...
//http://www.cnblogs.com/OceanEyes/p/custom-provider-in-sharepoint-2013-fba-authentication.html 由于项目 ...
- SharePoint 2013 APP 开发示例 (二)获取用户信息
这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的 SharePoint 2013 app: UserProfileTest. 3. 选 ...
- SharePoint 2013中规划企业搜索体系结构
SharePoint 2013中规划企业搜索体系结构 摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索 ...
- sharepoint搭建文档服务器,SharePoint 2013 安装和配置概述
SharePoint 2013 安装和配置概述 03/21/2018 本文内容 **上一次修改主题:**2017-08-23 **摘要:**了解如何在场中安装和配置 SharePoint Server ...
最新文章
- 确保***测试计划成功的10个秘诀(语录)
- 在Eclipse中使用JUnit4进行单元测试(中级篇)
- domdocument php 扩展_php使用自带dom扩展进行元素匹配的原理解析
- Jdk 和 jre 的 关系和区别
- python弹窗输入_Python中使用tkinter弹窗获取输入文本
- Bezier(贝塞尔)曲线的轨迹规划在自动驾驶中的应用(二)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的球鞋购物系统
- python3哪个版本稳定-Python 3.9 发布稳定版本,八大特性学起来!
- mysql数据库多表查询出来多条重复数据--处理方法--distinct
- (APP测试三板斧)第一板:Xposed+JustTrustMe绕过SSL Pining
- c语言 电阻器的分类,电阻器的分类与特点
- 模式识别属于计算机科学吗,模式识别与智能系统这个学科属于什么类?
- 创建Qsys_PIO IP核
- 创客教育中常见的视觉识别摄像头介绍
- ES 条形图 histogram
- 学习Linux七(Linux必学60个命令之【系统管理】)
- 可穿戴产品中四大心率监测方法盘点
- Linux攻关之基础模块四 命令初识
- 商用车SCR系统行业调研报告 - 市场现状分析与发展前景预测
- 2.11 header footer hgroup address元素
热门文章
- asp.net mvc mysql 开源项目_【开源项目SugarSite】ASP.NET MVC+ Layui+ SqlSugar+RestSharp项目讲解...
- module.exports 和 exports 的区别
- Communicator 2007的一些设置
- 演示:取证分析IPV6组播地址的构成原理
- 对研发经理这一岗位的个人理解
- IT人 不要一辈子靠技术生存(转
- pytorch中hook的使用
- 系统调用的概念和类型
- 第三季-第12课-多进程程序设计
- 整理Java基础知识--数组2