SharePoint 2013 配置 -- 基于Form表单的身份认证配置图解

使用微软提供的工具,创建数据库,找到Framework64下的aspnet_regsql,如下图:

  找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319路径下的aspnet_regsql.exe文件,如下图;

 

双击aspnet_regsql,弹出创建向导,点击下一步,如下图:

 

选择安装选项,我们是要配置,不是移除,点击下一步,如下图:

 

 填写数据库名称:FormAuthenticationDB,(服务器默认是机器名,不用改动),点击下一步,如下图:

 

 确认你的设置,是不是正确,点击下一步,如下图:

 

 最后点击完成即可。

此时数据库已经被创建或修改,我们可以连接到数据库上查看一下,如下图:

 打开Sql Server管理工具,可以看到我们创建的数据库和表,确实已经创建了,如下图:

 

而后修改CA、STS服务、Web App的web.config即可;

  打开IIS,从IIS里找到管理中心的站点,右键浏览,修改配置文件,如下图:

  当然,如果你非常熟悉,直接去找到配置文件即可;

 

 如下配置文件,用Visual Studio打开,记事本也可以,但是结构不清晰;

 

 如下位置添加数据库连接串(</SharePoint>和<system.web>之间),如下图:

<connectionStrings>   
<add name="SqlConnectionString" connectionString="Data Source = 你的数据库服务器名称;Initial Catalog = FormAuthenticationDB;Integrated Security = SSPI"/>
</connectionStrings>

如下位置添加Membership Provider和Role Provider

<membership defaultProvider="LINYUMembership">
  <providers>
    <add name="LINYUMembership"
          connectionStringName="SqlConnectionString"
          passwordAttemptWindow="10"
          enablePasswordRetrieval="false"
          enablePasswordReset="true"
          requiresQuestionAndAnswer="false"
          applicationName="/"
          requiresUniqueEmail="true"
          passwordFormat="Hashed"
          type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
  </providers>
</membership>
<roleManager defaultProvider="LINYURole">
  <providers>
    <add name="LINYURole"
          connectionStringName="SqlConnectionString"
          applicationName="/"
          type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</roleManager>
添加完毕的截图,覆盖掉已经存在的空节点,如下图:

 

 修改STS服务的配置文件,通过IIS找到,如下图:

 

 在</system.serviceModel>下面添加数据库连接字符串,如下图:

<connectionStrings>
    <add name="SqlConnectionString" connectionString="Data Source = 你的数据库服务器名称;Initial Catalog = FormAuthenticationDB;Integrated Security = SSPI"/>
</connectionStrings>

 在下面直接添加<system.web>节点,<system.web>节点里面包含Membership 和roleManager节点,如下图:

<system.web>
  <membership defaultProvider="LINYUMembership">
    <providers>
      <add name="LINYUMembership" connectionStringName="SqlConnectionString" passwordAttemptWindow="10" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="true" passwordFormat="Hashed" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
   </providers>
  </membership>
  <roleManager defaultProvider="LINYURole">
    <providers>
      <add name="LINYURole" connectionStringName="SqlConnectionString" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </providers>
   </roleManager>
</system.web>

 修改Web App的配置文件,如下图:

 

 在</SharePoint>下面,添加数据库连接字符串,如下图:

 <connectionStrings>
    <add name="SqlConnectionString" connectionString="Data Source = 你的数据库服务器名称;Initial Catalog = FormAuthenticationDB;Integrated Security = SSPI"/>
</connectionStrings>

 找到下图位置,添加我们的<add name="LINYUMembership"  和 <add name="LINYURole"  节点,如下图:

  <add name="LINYUMembership" connectionStringName="SqlConnectionString" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

 

 <add name="LINYURole" connectionStringName="SqlConnectionString" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

 添加完毕,如下图:

 

到此,配置文件均修改成功,去管理中心修改Web App的认证即可。

  打开管理中心,找到我们要配置的web应用程序,点击验证提供程序,如下图:

 

 勾选FBA认证,并填写我们的membership和provider,然后保存,如下图:

 

 打开网站,已经可以选择登陆方式了,如下图:

 

 选择表单登陆,进入登陆页面(但是此时还不能登录,因为没有为网站添加form认证的用户),如下图:

 

 可以利用MemberShip类的CreateUser方法创建Form表单用户,创建好的表单用户可以再Sharepoint中查找到,如下图:

 

 而后用创建好的Form表单用户来登陆,可以发现已经登陆上来了,说明表单认证配置成功!

 查看用户信息,账户名称确实是表单认证的账户,如下图:

 

最后,附上属性说明:

enablePasswordRetrieval:指示当前成员资格提供程序是否配置为允许用户检索其密码。
enablePasswordReset:指示当前成员资格提供程序是否配置为允许用户重置其密码。 
requiresQuestionAndAnswer:指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。
applicationName:应用程序的名称。
requiresUniqueEmail:指示成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。 
passwordFormat:指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。
maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
minRequiredPasswordLength:密码所要求的最小长度。
minRequiredNonalphanumericCharacters:有效密码中必须包含的最少特殊字符数。 
passwordAttemptWindow:在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。这是为了 防止不明来源反复尝试来猜测成员资格用户的密码或密码提示问题答案的额外措施。
passwordStrengthRegularExpression:计算密码的正则表达式。

 

posted @ 2020-04-23 17:49  SelenaZhou  阅读(208)  评论(0编辑  收藏  举报