设为首页 收藏本站
查看: 979|回复: 0

[经验分享] 在SharePoint 2010中使用表单认证

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-24 09:45:11 | 显示全部楼层 |阅读模式
  在WSS 3.0或MOSS 2007中如果要同时使用Windows集成认证和窗体认证,必须扩展已有的Web Application到另一个端口,然后为不同的区域各自选择认证方式。这是个不错的方案,但仍然有以下问题,


  • 两者本质上是两个独立的网站,依赖于同一个内容数据据。一些自定义内容需要被部署两次,例如自定义Web Part。
  • 两者的URL不同
  SharePoint 2010基于声明的混合认证方式,解决了以上问题。

使用AspNetSqlMembershipProvider设置声明认证
  为SharePoint 2010设置AspNetSqlMembership窗体认证的主要步骤与SharePoint 3.0相似。本文在不同之处会重点指出。

配置AspNetMembershipProvider
  先使用aspnet_regsql这个工具创建用于Asp.Net Membership认证的数据库,可取名为aspnetdb。
  使用Visual Studio创建一个网站,便于在该网站的配置文件中设置提供程序。
设置<authentication mode="Forms" />,以使用窗体认证。
在web.config添加连接字符串。




<connectionStrings>
  <add connectionString="Server=localhost;Database=aspnetdb;Integrated Security=true" name="MyAspNetDB" providerName="System.Data.SqlClient" />
</connectionStrings>
  在<system.web>节点下添加Memebership定义。





<membership defaultProvider="MyAspNetMembers">
  <providers>
        <add connectionStringName="MyAspNetDB"
             applicationName="/"
             name="MyAspNetMembers"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyAspNetRoles">
   <providers>
     <add connectionStringName="MyAspNetDB"
        applicationName="/"
        name="MyAspNetRoles"
        type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
   </providers>
</roleManager>
  这里都显式定义了连接字符串、membership和roleManager,而不是使用默认的AspNetSqlMembershipProvider定义。这是为了在后面SharePoint的设置中使用相同配置。
  在Visual Studio中选择菜单网站->ASP.Net配置,检查设置是否正确,并添加用于测试的用户和角色。
DSC0000.jpg

创建SharePoint 2010 Web应用程序
  在SharePoint 2010的管理中心新建Web应用程序。(Vista/Win7/Windows 2008下必须以管理员身份运行IE才能在管理中心创建Web应用程序)
DSC0001.jpg
此处,必须选择“基于声明的身份验证”才能使用基于窗体的身份认证。这与SharePoint 3.0不同。如果在这里选择了“经典模式身份认证”,SharePoint 2010仍然会允许扩展Web应用程序并设置不同的区域,但是在区域的安全性设置中,无法设置窗体认证。
选中“启用基于窗体的身份验证”,并在下方的文本框中输入在上面步骤中设置的Membership提供程序和角色管理器名称。

设置SharePoint 2010管理中心网站web.config
  打开管理中心网站的web.config。将上面步骤中的ConnectionString, Membership和RoleManager全部复制到管理中心web.config中对应位置。
并在PeoplePickerWildcards中添加所定义的MyAspNetMembers提供程序。




<PeoplePickerWildcards>
      <clear />
      <add key="AspNetSqlMembershipProvider" value="%" />
      <add key="MyAspNetMembers" value="%" />
</PeoplePickerWildcards>
设置新建Web应用程序的web.config
  将上面步骤中的ConnectionString, Membership和RoleManager设置添加到新建web应用程序的web.config对应位置中。注意保留其中已有的提供程序与默认值。




<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 connectionStringName="MyAspNetDB"
             applicationName="/"
             name="MyAspNetMembers"
             type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
      </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 connectionStringName="MyAspNetDB"
             applicationName="/"
             name="MyAspNetRoles"
             type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </providers>
</roleManager>
设置Security Token Service(STS)的web.config
  SharePoint 2010是通过STS验证用户声明的,为了让STS能进行正确的验证,必须在STS的web.config中配置同样的提供程序。
STS工具的路径为C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken。
  打开其web.config,添加配置如下。




<system.web>
      <membership>
        <providers>
          <add connectionStringName="MyAspNetDB"
               applicationName="/"
               name="MyAspNetMembers"
               type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
        </providers>
      </membership>
      <roleManager>
        <providers>
          <add connectionStringName="MyAspNetDB"
               applicationName="/"
               name="MyAspNetRoles"
               type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        </providers>
      </roleManager>
    </system.web>
    <connectionStrings>
      <add connectionString="Server=localhost;Database=aspnetdb;Integrated Security=true" name="MyAspNetDB" providerName="System.Data.SqlClient" />
    </connectionStrings>
  其中,不需要为membership或roleManager设置默认的提供程序。

创建网站集并设置用户
  一切配置就绪后,就可以为新建的Web应用程序创建网站集并设置用户。如图,administrator为Windows用户,stanley为基于ASP.Net Membership的窗体认证用户。
DSC0002.jpg
点击“浏览”图标可以查找到Windows认证和窗体认证的用户。
DSC0003.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118056-1-1.html 上篇帖子: 使用SharePoint 2010模式对话框 下篇帖子: [SharePoint 2010]如何定制事件处理程序的Error Pages
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表