场景:通常需要为sharepoint打通其他的系统整合到sharepoint认证,ad通常是为内部域用户,外网访问的可以使用membership来登录,那么这个既可以内部用户访问,外部用户也可以访问 ,另外也可以把其他的用户加到membership里面.

目录:

  1. 用aspnet_sqlreg创建memebership数据库
  2. 用网站管理工具添加用户和角色
  3. 为以下添加连接字符串:
    • 你的应用程序(application)
    • 管理中心(central administration)
    • 令牌服务程序(secure token service application)
  4. 为以下添加memebership和providers
    • 你的应用程序(application)
    • 管理中心(central administration)
    • 令牌服务程序(secure token service application)
  1. 创建一个新的应用程序

    打开管理中心,找到管理web应用程序 

点击后弹出一个界面,点击ribbon工具栏新建一个application

在弹出的窗口中选择基于身份的验证(Claims Based Authentication),完成后IIS将创建一个新的IIS站点,如果需要你可以修改这个站点名字,如Sharepoint --FBA Test ,这里需要选一个可用的端口.

向下滑动一点,配置基于forms的认证,选择开启基于forms认证,并且配置membership提供者命名为FBAMembership,接着配置角色提供者FBARoles

最后一步配置应用程序池为网络服务

滑倒底部点击OK,这个需要10-15秒创建一个新的application. 创建完成后出现如下画面;

除了使用基于windows认证之外还是用了基于forms认证,点击ok创建一个site collection并且把windows 帐号设置为主要的管理员(primary)

  1. 创建membership存储并且添加用户

    • 创建数据库

打开visual studio 2010窗口命令工具,输入aspnet_sqlreg,回车后弹出一个向导配置数据库.按照默认将数据库命名为membershipdb,结构如下:

接下来的事情将是要添加一些用户和角色到数据库中,别且使用vs修改web配置文件中的连接字符串.在“<connectionStrings/>” 节点里面

<connectionStrings>
<clear/>
<add name="AspNetSqlProvider"
connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=membershipdb;"
providerName="System.Data.SqlClient" />
</connectionStrings>

然后在</system.web> 标记结束的地方,添加下面的节点,这里用AspNetSqlMembershipProvider和AspNetSqlRoleProvider来命名比较好记,等之后配置的时候使用FBAMembership和FBARoles,这个命名是次要的,主要是数据库指向的字符串名字和应用程序的名字要正确.

   1:  <membership defaultProvider="AspNetSqlMembershipProvider">
2: <providers>
3: <clear />
4: <add name="AspNetSqlMembershipProvider"
5: connectionStringName="AspNetSqlProvider"
6: applicationName="/"
7: type="System.Web.Security.SqlMembershipProvider, System.Web,
8: Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
9: </providers>
10: </membership>
11: <roleManager defaultProvider="AspNetSqlRoleProvider">
12: <providers>
13: <clear/>
14: <add name="AspNetSqlRoleProvider"
15: connectionStringName="AspNetSqlProvider"
16: applicationName="/"
17: description="Stores and retrieves roles data from the local Microsoft SQL Server database"
18: type="System.Web.Security.SqlRoleProvider, System.Web,
19: Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
20:
21: </providers>
22: </roleManager>
  1. 使用web site管理工具添加用户

默认情况下程序配置为windows认证,需要改成forms认证,切换到安全选项卡,点击来自网络并且保存.

保存后web.config会默认已经被修改成forms认证.在安全选项卡启用角色,点击管理或创建角色,选择FBAAdministrators,FBAOwners和FBAUsers

点击创建用户链接创建一个adminfba,并且分配角色为FBAAdministrators

你还可以创建其他的用户并且分配到不同的角色里面,如ownerfbs分配到FBAOwners角色中,userfbs分配到FBAUsers角色中

另外创建用户的时候密码有一些要求.

具体参见memebership默认设置

  1. 给SQL Server加权限

当我们创建了sharepoint的application,我们需要在IIS的应用程序池里面设置为网络服务帐号.这个可以连通sql认证.或许你需要在真实的环境中使用其他的帐号.

需要为应用程式池添加一个登陆账号.

下一步为他们添加适当的权限,把帐号添加到

aspnet_Membership_BasicAccess 和 aspnet_Roles_BasicAccess 角色中

千万要记住必须做这些设置,不然回报安全错误.

  1. 给sharepoint加基于form的认证

添加的方法同asp.net站点一样,不过我们可以使用IIS 管理工具来添加.

    • 添加连接字符串

打开站点名字为SharePoint – FBA Test

双击连接字符串选项,并且添加一个名为AspNetSqlProvider 然后点击确定.

然后到sharepoint的web.config检查如下:

1: <connectionStrings> 2: <add name="AspNetSqlProvider" 3: connectionString="data source=xxx; Integrated Security=SSPI;Initial Catalog=memebershipdb;" 4: providerName="System.Data.SqlClient" /> 5: </connectionStrings>

然后到管理中心作如上操作.

再到web service里面找到节点SecurityTokenServiceApplication添加连接字符串同上.

添加memebership和role的角色

打开IIS管理工具,展开SharePoint – FBA Demo,点击provider,创建一个FBARoles角色并且类型为SqlRoleProvider,应用程序输入“/”  连接字符串选择AspNetSqlProvider

再添加一个FBAMembership角色,类型是SqlMembershipProvider,连接字符串为AspNetSqlProvider,application是“/”

所有添加完了之后打开配置文件就是这样:

<membership defaultProvider="i"> <providers> <add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add name="FBAMembership" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" enablePasswordReset="false" enablePasswordRetrieval="false" passwordFormat="Clear" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" /> </providers> </membership> <roleManager defaultProvider="c" enabled="true" cacheRolesInCookie="false"> <providers> <add name="c" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <add name="FBARoles" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" applicationName="/" connectionStringName="AspNetSqlProvider" /> </providers> </roleManager>

点击SharePoint Central Administration v4” 做如上操作,添加FBAMembership 和FBARoles 像之前描述得那样.展开SharePoint Web Services做法雷同.

    • 为管理中心修改web.config
    • 为令牌服务(secure token service)修改web.config
  1. 验证是否已经修改成功

然后到管理中心去打开添加用户,如果在弹出的对话框中可以看到在membership中配置的用户和角色,那么说明已经正常了,

用户的字符串像这个样子:“i:0#.f|fbamembership|adminfba”.

然后把用户设为full control

在新站点上可能看到如下错误,

选择forms认证并且登录为adminfbs即可.

登录进去你将拥有管理员的权限.

现在这个用户有完全控制,可以把之前在memebership中的角色配置到sharepoint组里面.

然后用其他的各种角色的帐号测试一下. 权限低的角色将限制了一部分权限.

SharePoint 2010 配置基于MemberShip的身份验证的更多相关文章

  1. [SharePoint 2010]关于基于声明(Claims)的用户认证模式

    转:http://blog.csdn.net/zw_2011/article/details/7417132 SharePoint 2010在用户认证模式上,较之以前的版本有了非常大的改变.在Shar ...

  2. SharePoint 2013 配置基于表单的身份认证

    前 言 这里简单介绍一下为SharePoint 2013 配置基于表单的身份认证,简单的说,就是用Net提供的工具创建数据库,然后配置SharePoint 管理中心.STS服务.Web应用程序的三处w ...

  3. 基于Token的身份验证--JWT

    初次了解JWT,很基础,高手勿喷. 基于Token的身份验证用来替代传统的cookie+session身份验证方法中的session. JWT是啥? JWT就是一个字符串,经过加密处理与校验处理的字符 ...

  4. 基于 Token 的身份验证方法

    使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录.大概的流程是这样的: 客户端使用用户名跟密码请求登录 服务端收到请求,去验证用户名与密码 验证成功后,服务端会签发一个 Toke ...

  5. 基于Token的身份验证——JWT

    初次了解JWT,很基础,高手勿喷. 基于Token的身份验证用来替代传统的cookie+session身份验证方法中的session. JWT是啥? JWT就是一个字符串,经过加密处理与校验处理的字符 ...

  6. (转)基于 Token 的身份验证

    原文:https://ninghao.net/blog/2834 最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,G ...

  7. 基于 Token 的身份验证:JSON Web Token(附:Node.js 项目)

    最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twitter,Google+,Github 等等,比起传统的身份验证方法,Token 扩展性更强, ...

  8. 基于token的身份验证JWT

    传统身份验证的方法 HTTP 是一种没有状态的协议,也就是它并不知道是谁是访问应用.这里我们把用户看成是客户端,客户端使用用户名还有密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下 ...

  9. [转载]基于 Token 的身份验证

    作者:王皓发布于:2015-08-07 22:06更新于:2015-08-07 22:07 最近了解下基于 Token 的身份验证,跟大伙分享下.很多大型网站也都在用,比如 Facebook,Twit ...

随机推荐

  1. 鼠标指向GridView某列显示DIV浮动列表

    需求: 当GRIDVIEW数据列过多,不方便全部显示在同一行或者一些子信息需要鼠标指向某关键列GRIDVIEW的时候显示其子信息. 设计:先把需要显示的浮动数据一次过抓取出来.而不是鼠标指向的时候才从 ...

  2. WOSA/XFS及SP综述

    转自  http://blog.csdn.net/andyhou/article/details/6888416 前言:         写给ATM硬件和软件人员的无言歌.         希望对工作 ...

  3. C#读写者线程(用AutoResetEvent实现同步)

    转载自 http://blog.csdn.net/livelylittlefish/article/details/2735440 本博客(http://blog.csdn.net/livelylit ...

  4. 前端优化分析 之 javascript引用位置优化

    在很多优化法则中都提到,尽量将javascript放到页面底部,这是为什么呢 我通过firebug进行了下简单的分析 看下图  本页面首尾都存在javascript代码 我们分析得出 1.整个页面文档 ...

  5. 泛型Dictionary的用法详解

    泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的 ...

  6. swift:自定义UICollectionViewFlowLayout

    写作目的 UICollectionView是ios中一个十分强大的控件,利用它能够十分简单的实现一些很好看的效果.UICollectionView的效果又依赖于UICollectionViewLayo ...

  7. SSD(固态硬盘)简介

    http://www.jinbuguo.com/storage/ssd_intro.html

  8. 自己编写的.sh脚本文件运行完闪退解决方案

    gnome-terminal设置如下图: 直接原因是,“命令退出时:退出终端”造成的!! 解决方案如下: 1. Ctrl + Alt + F1 ,进入文本操作模式: 2. 登录后,执行:yum ins ...

  9. JS获取与遍历节点的兄弟父级

    发布:脚本学堂/JavaScript  编辑:JB01   2014-01-23 15:40:11  [大 中 小] 介绍下js获取节点的兄弟.父级与子元素的方法,学习下js遍历节点的操作方法,有需要 ...

  10. Linux 必掌握的 SQL 命令

    数据库和 SQL 在本系列教程中,目前我们使用平面文本文件来存储数据.平面文本文件可能适合相对较少的数据,但它们对存储大量数据或查询该数据没有多大帮助.多年来,为该目的开发了多种数据库,包括分层和网络 ...