在SharePoint Server 2016 RC 中利用ASP.Net SQL MemberShip和Role Provider为Web Application配置Forms-based身份验证

博客地址:http://blog.csdn.net/shelleyliu0415

 

概括介绍:基于Forms-based的身份验证是基于 ASP.NET MembershipRole provider 提供程序身份验证的基于Claims-Basedidentity management系统,基于Forms-based authentication 根据用户在logon form(通常是一个网页)中键入的credentials 验证用户身份。未经身份验证的请求将重定向到登录页,用户必须在该页中提供有效凭据并提交表单。系统会为经过身份验证的请求发布一个 Cookie,其中包含用于重建后续请求的标识的项。

 

接下来图文并茂形式为大家介绍一下如何在SharePoint 2016 RC中部署FBA环境。

 

整个部署分为四个阶段,分别为:

 

  • 第一阶段:在CA中创建一个以Forms-based AuthenticationWeb Application
  • 第二阶段:配置ASP.netDB用来存储FBA UserRoles的信息
  • 第三阶段:创建RoleUsers
  • 第四阶段:为Web Application配置MembershipRole Provider

 

具体部署步骤:

 

第一阶段:创建Web Application,勾选“Enable Forms Based Authentication”,填写ASP.NetMembership Provider Name以及Role Manager Name,如下图所示:

 


 

第二阶段:配置ASP.netDB用来存储FBA UserRoles的信息。

 

  1. 开始->运行->cmd,输入cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
  2. 输入ASPNET_REGSQL,会运行“ASP.NET SQL Server Setup Wizard”。


 

  1. 点击NextSelect the Server and Database界面,Server处填写SQL的实例名,认证方式可以选择Windows认证或者sa认证,如果是windows认证,请确保当前运行命令的用户有DB creator权限。Database处填写一个用来存储FBA User & RolesDB名,即我们所要创建的DB名。在这里,我们使用的认证方式是windows认证方式,具体填写内容如下图所示。如果你想采用sa认证的方式去创建,请确保配置SharePoint的用户对这个sa用户创建出来的DB拥有“读”的权限。NextfinishDB创建完毕。


 

 

第三阶段:创建RoleUsers,具体步骤如下:

 

  1. 找一个位置新建个文件夹,用于存储链接DBWeb Configure文件(通过该文件,界面化创建userroles)。我们可以把这个文件夹建在C盘的根目录下,这样方便查询。


 

 

  1. 运行Visual Studio 2008File->Open->Web Site,选择File System下刚创建的物理文件夹FBA,打开。
  2. Solution Explorer中,右键点击路径,选择add new item,选择Web Configuration File,命名默认为Web.Config


 

 

  1. 配置文件中搜索<system.web>,在行代码上方输入<connectionstrings>……<connectionStrings>一段代码(可在附件的配置文件中查找),输入后检查,如果我们输入的这段代码上方有多余的<connectionStrings>节点需要删除。

 <connectionStrings>

 <remove  name="AspNetDbFBADemoConnectionString"/>

  <add     name="AspNetDbFBADemoConnectionString"

             connectionString="Data source=SharePoint2016;IntegratedSecurity=SSPI;Initial Catalog=FBA"

             providerName="System.Data.SqlClient" />

 </connectionStrings>

注:此处有几个地方需要改一下名字,Data source后边填写SQL的实例名,Initial Catalog后边填写我们在第一步中创建的DB名。

<system.web>以下的代码全部删除掉,用下边这一段代码来代替。

<authentication mode="Forms" />

   <membership defaultProvider="FBADemoMember">

     <providers>

      <add connectionStringName="AspNetDbFBADemoConnectionString"

             enablePasswordRetrieval="false"

             enablePasswordReset="false"

             requiresQuestionAndAnswer="false"

         applicationName="/"

         requiresUniqueEmail="false"

         passwordFormat="Hashed"

         maxInvalidPasswordAttempts="5"

         minRequiredPasswordLength="1"

         minRequiredNonalphanumericCharacters="0"

         passwordAttemptWindow="10"

        passwordStrengthRegularExpression=""

         name="FBADemoMember"         type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>

     </providers>

   </membership>

    <!--role provider -->

   <roleManager enabled="true"defaultProvider="FBADemoRole">

    <providers>

       <add  connectionStringName="AspNetDbFBADemoConnectionString"

       applicationName="/"

      name="FBADemoRole"      type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"/>

    </providers>

   </roleManager>

 </system.web>

</configuration>

  1. save之后点击Website->ASP.NET Configuration,在弹出的页面点击Security,点击Select Authentication Type,选择From the internet,并点击右下角的Done按钮。


 

 

  1. 然后就可以创建rolesuser了。


 

第四阶段:Web Application配置MembershipRoleProvider,参考了MSDN的相关资料,点击链接

 

  1. Web Application Web.Config 文件,C点击路径C:\inetpub\wwwroot\wss\VirtualDirectories,找到Web Site对应端口号的Folder打开,将Web.Config文件保存一份,然后用vs打开,在</configSections> tag后输入如下:

 

  <connectionStrings>

    <addname="AspNetSqlMembershipProvider"

        connectionString="Initial Catalog=FBA;datasource=SharePoint2016;Integrated Security=SSPI;" />

  </connectionStrings>

 


 

<Providers> tag里, <membership> tag下添加如下信息,

 

<add name="FBADemoMember"

              connectionStringName="AspNetSqlMembershipProvider"

              applicationName="/"

              type="System.Web.Security.SqlMembershipProvider,

             System.Web,Version=2.0.0.0, Culture=neutral,

            PublicKeyToken=b03f5f7f11d50a3a" />

 


 

<Providers> tag里,<RoleManager>Section下输入如下信息,如图所示:

 

add name="FBADemoRole"

             type="System.Web.Security.SqlRoleProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

             connectionStringName="AspNetSqlMembershipProvider"

             applicationName="/" />

 


 

保存Web Config文件。

 

 

  1. 管理中心 Web 应用程序 Web.Config 文件,点击路径C:\inetpub\wwwroot\wss\VirtualDirectories,找到CA Web Site对应端口号的Folder打开,将Web.Config文件保存一份,然后用vs打开,在</configSections> tag后输入如下:

 

 <connectionStrings>

    <addname="AspNetSqlMembershipProvider"

        connectionString="Initial Catalog=FBA;datasource=SharePoint2016;Integrated Security=SSPI;" />

  </connectionStrings>

 


 

<Providers> tag里,<RoleManager>Section下输入如下信息,如图所示:

 

add name="FBADemoRole"

             type="System.Web.Security.SqlRoleProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

             connectionStringName="AspNetSqlMembershipProvider"

             applicationName="/" />


 

<Providers> tag里, <membership> tag下添加如下信息,

 

<add name="FBADemoMember"

              connectionStringName="AspNetSqlMembershipProvider"

              applicationName="/"

              type="System.Web.Security.SqlMembershipProvider,

             System.Web,Version=2.0.0.0, Culture=neutral,

            PublicKeyToken=b03f5f7f11d50a3a" />

 


 

保存Web Config文件。

 

  1. Security Token Service Web.Config 文件,点击路径C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\WebServices\SecurityToken,将web.config文件保存一份,然后用vs打开,在 <Configuration> 部分,添加以下示例条目:

 

 <connectionStrings>

    <addname="AspNetSqlMembershipProvider"

        connectionString="Initial Catalog=FBA;datasource=SharePoint2016;Integrated Security=SSPI;" />

  </connectionStrings>

 


 

</configuration>上填写如下信息:

 

 <system.web>

    <roleManagerenabled="true" cacheRolesInCookie="false"cookieName=".ASPXROLES" cookieTimeout="30"cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true"cookieProtection="All" createPersistentCookie="false"maxCachedResults="25">

      <providers>

        <addconnectionStringName="AspNetSqlMembershipProvider"applicationName="/" name="AspNetSqlRoleProvider"type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

        <addname="FBADemoRole"

            type="System.Web.Security.SqlRoleProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

            connectionStringName="AspNetSqlMembershipProvider"

            applicationName="/" />

      </providers>

    </roleManager>

    <membershipuserIsOnlineTimeWindow="15" hashAlgorithmType="">

      <providers>

        <addconnectionStringName="AspNetSqlMembershipProvider"enablePasswordRetrieval="false" enablePasswordReset="true"requiresQuestionAndAnswer="true" passwordAttemptWindow="10"applicationName="/" requiresUniqueEmail="false"passwordFormat="Hashed" name="AspNetSqlMembershipProvider"type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

        <addname="FBADemoMember"

                  connectionStringName="AspNetSqlMembershipProvider"

                  applicationName="/"

                  type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

      </providers>

    </membership>

  </system.web>

 


 

在上述条目中,替换以下内容:

 

  1. <add name="membership" 中您的成员资格提供程序的名称。
  2. data source=" Your Server" 中您的Server Name
  3. <add name="roleManager" 中您的角色管理器的名称。
  4. connectionStringName="AspNetSqlMembershipProvider"

 

在添加此条目之后,保存并关闭 Web.Config 文件。

 

最后,验证配置是否正确,在配置FBAWeb Application下,new一个Site Collection,成功之后,给FBAUser权限,如下图所示:

 


 

成功赋予权限之后,用该FBA User登录SiteCollection,如下图所示:

 


 

登录成功,显示Jeff登录,如下图所示:

 


 

 

如果配置期间发现CA访问不了,请仔细检查CAWeb Config文件是否配置有问题,如果用户跳转出现问题,请检查Token ServiceWeb Config文件是否正确配置。

谢谢大家的阅读!

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值