MOSS 預設使用 Windows 整合驗證 (NTLM/Kerberos),適用內網但不利外網存取(需開放防火牆埠、VPN)。純表單驗證 (FBA) 則需自建使用者資料庫,維護成本高。本文介紹「基於 AD 的表單驗證」:使用者輸入帳密表單登入,後端驗證對接 Active Directory,兼具安全與便利。

AspNetActiveDirectoryMembershipProvider(需與 web.config 設定一致)。AspNetActiveDirectoryRoleProvider(可選)。
<configuration>
<connectionStrings>
<add name="ADConnectionString" connectionString="LDAP://dc.example.com/DC=example,DC=com" />
</connectionStrings>
<system.web>
<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
<providers>
<add name="AspNetActiveDirectoryMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="CN=svc_sp,OU=Service Accounts,DC=example,DC=com"
connectionPassword="P@ssw0rd"
enableSearchMethods="true"
attributeMapUsername="userPrincipalName" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetActiveDirectoryRoleProvider">
<providers>
<add name="AspNetActiveDirectoryRoleProvider"
type="System.Web.Security.ActiveDirectoryRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"
connectionUsername="CN=svc_sp,OU=Service Accounts,DC=example,DC=com"
connectionPassword="P@ssw0rd" />
</providers>
</roleManager>
</system.web>
</configuration>
/_layouts/login.aspx 或自訂頁面)。ActiveDirectoryMembershipProvider.ValidateUser,透過 LDAP 綁定驗證。ActiveDirectoryRoleProvider 讀取 AD 群組成員資格對應 SharePoint 權限。peoplepicker-searchadforests 才能跨林查詢使用者。基於 AD 的表單驗證(AD + FBA)是 SharePoint 對外發布的最佳實踐:保留 AD 單一身分來源,提供表單化登入體驗,符合安全合規與使用者便利性雙重需求。