写之前,我发下感慨,我为了弄这个from认证花费了4天时间,而且每天都熬夜2点才睡觉,最后还是在和 foley 讨论下才真正成功实现了,这里form认证和2007不一样,它的用户是存在AD里面的,所以需要域服务器,外国的文章和MSND上也只提供了这种方式,现在我也没法实现2007那种SQL数据库保存用户的方法,因为在登录的时候会爆一个很BT得错误(经过多方努力,终于找到文档实现SQL保存用户了),好了我现在介绍怎么配置form认证:
一。进管理中心,创建一个应用程序,配置如下:
二。填端口号,和选择form身份认证,以及填写成员和角色,其他都默认就可以了
三。使用SharePoint 2010 Management Shell在里面填写下面的代码
代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->$webApp = Get-SPWebApplication "http://cd-isbunet:82"
$webApp.UseClaimsAuthentication = 1;
$webApp.Update()
$webApp.ProvisionGlobally()
$webApp = Get-SPWebApplication "http://cd-isbunet:82"
$webApp.MigrateUsers($True)
http://cd-isbunet:82 是我刚才创建的应用程序,你需要改成你自己的
四。最重要的一步,修改管理中心,我们创建的应用程序,还有Web服务里面的SecurityTokenServiceApplication(2007是不需要配置这个的)这个3个地方的web.config
1.找到管理中心的<system.web></system.web>,配置如下:
这里先解释下里面的代码,你只需要替换
server="cd-isbunet.ncs.corp.int-ads" //域控的地址
userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads" //Users不用换 DC为你域的信息
groupContainer="DC=ncs,DC=corp,DC=int-ads"
connectionUsername="XXX/jiangly" //换成自己的域管理员
connectionPassword="123456" />
代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> <membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<!-- ADMembership-->
<add name="ADMembership"
type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
userObjectClass="person"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
<!-- ADMembership-->
</providers>
</membership >
<roleManager defaultProvider="AspNetWindowsTokenRoleProvider" enabled ="true">
<providers>
<add name="roleManager"
type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389"
useSSL="false"
groupContainer="DC=ncs,DC=corp,DC=int-ads"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(&(ObjectClass=group))"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
</providers>
</roleManager>
2.找到应用程序的<system.web></system.web>,配置如下:
代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> <machineKey validationKey="D35D48269B8B92E8A7D86FB64FBFCC4B2B4F1E3A0BFC43FB" decryptionKey="FEA7B512E6E390C18283E0D2E0542564F1E47E1F0A80F335" validation="SHA1" />
<membership defaultProvider="i">
<providers>
<add name="i" type="Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<!-- ADMembership-->
<add name="ADMembership" type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389" useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
userObjectClass="person"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
<!-- ADMembership-->
</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" />
<!-- ADMembership-->
<add name="roleManager" type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389"
useSSL="false"
groupContainer="DC=ncs,DC=corp,DC=int-ads"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(&(ObjectClass=group))"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
<!-- ADMembership-->
</providers>
</roleManager>
3.找到SecurityTokenServiceApplication站台web.config,它里面没有<system.web></system.web>,你需要自己添加
代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> <system.web>
<!-- ADMembership-->
<membership>
<providers>
<!-- ADMembership-->
<add name="ADMembership"
type="Microsoft.Office.Server.Security.LdapMembershipProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="CN=Users,DC=ncs,DC=corp,DC=int-ads"
userObjectClass="person"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
<!-- ADMembership-->
</providers>
</membership>
<roleManager enabled ="true" >
<providers>
<!-- ADMembership-->
<add name="roleManager"
type="Microsoft.Office.Server.Security.LdapRoleProvider, Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
server="cd-isbunet.ncs.corp.int-ads"
port="389"
useSSL="false"
groupContainer="DC=ncs,DC=corp,DC=int-ads"
groupNameAttribute="cn"
groupNameAlternateSearchAttribute="samAccountName"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(&(ObjectClass=group))"
userFilter="(&(ObjectClass=person))"
scope="Subtree"
connectionUsername="XXX/jiangly"
connectionPassword="123456" />
<!-- ADMembership-->
</providers>
</roleManager>
</system.web>
五。我们进管理中心-》应用程序管理-》打开用户策略-》添加域中的用户(如果没有找到,说明你的web.config里要修改的参数不对)
六。创建网站集,然后打开站点登陆,如果一切正常就能进入站点了
祝你成功!
这里特别感谢foley!
参考资料:
(1)http://www.microsofttranslator.com/bv.aspx?ref=Internal&from=en&to=zh-CHS&a=http%3a%2f%2fblogs.msdn.com%2fb%2frussmax%2farchive%2f2009%2f12%2f31%2fconfiguring-forms-based-authentication-for-claims-based-web-applications.aspx
(2)http://isharebook.com/forums/showthread.php/2649-Claims-Based-Identity-in-SharePoint-2010.html
(3)http://blogs.technet.com/b/speschka/archive/2009/11/05/configuring-forms-based-authentication-in-sharepoint-2010.aspx
(4)http://xiangzhangjun2006.blog.163.com/blog/static/44140966201061334818612/
转自http://www.cnblogs.com/jlydboy/articles/1792112.html
正如作者所述,配置这个花了几天时间,也正因此或许面临的问题比较全面,也更有价值,特转此两篇,以备不时之需。
分享到:
相关推荐
Sharepoint MySite Form认证问题
在 SharePoint 2010 中设置基于表单的身份验证 (FBA) 时,我发现自己真的对不断修改配置文件厌烦了。与以前版本相比,现在需要做更多的工作,因为现在我们需要修改一个附加的 web.config 文件 - 针对 STS。如果您不...
一、SharePoint 2010介绍 二、SharePoint 2010安装、部署、升级 三、SharePoint2010配置与管理 四、SharePoint 2010客户化 五、SharePoint Designer 2010 六、SharePoint 2010 开发人员发展规划 七、...
基于AD认证的sharepoint2010表单认证,本人亲自测试过的,完全可以使用。
为SharePoint 2010 Workflow 开发 Custom Workflow Activity(Develop Custom Workflow Activity for SharePoint 2010 Workflow). SharePoint2010提供了很多有用的开箱即用的Activity(活动action),我们可以在...
几份sharepoint2010的开发教程,其中有几个是英文版的。 分别是:1、[SharePoint.2010.Workflows.实战].(SharePoint.2010.Workflows.in.Action).Phil.Wicklund.文字版.pdf 2、[SharePoint2010.Web开发参考大全]....
AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010AD域中的用户信息导入到SharePoint2010
指导如何基于sharepoint 2010平台进行定制,开发。
Sharepoint2010 微软官方教程合集: Microsoft SharePoint Server 2010 部署指南.pdf Microsoft SharePoint Server 2010 服务器场和环境规划指南.pdf Microsoft SharePoint Server 2010 服务器和服务器场操作指南....
SharePoint 2010 服务器规划
SharePoint 2010开发概览
Sharepoint 2010 学习指南
介绍如何一起部署 Active Directory 权限管理服务 (AD RMS) 和 Microsoft Office SharePoint Server 2007 过程。重点实现如何将 Office SharePoint Server 2007 添加到现有的 AD RMS 环境中
Real World SharePoint 2010
Beginning SharePoint 2010 Development 源代码
Sharepoint 2010 安装图解
本压缩包包括: SharePoint2010入门教程 SharePoint2010安装图解 SharePoint2010官方帮助文档 SharePoint2007入门教程 Windows Workflow Foundation安装文件
文档提供了如何在Windows中配置AD LDS,并详细介绍了如何将AD LDS集成到SharePoint2010中。
SharePoint2010商业智能基础