身份验证示例 (Windows SharePoint Services)
本文内容
本文内容:
本文包括几个常见的表单身份验证提供程序和 Web 单一登录 (SSO) 验证提供程序的示例配置设置。
SQL 成员资格提供程序
下表为使用 ASP.NET 表单身份验证连接到 SQL 成员资格提供程序提供了 Web.config 文件项示例。
启用 ASP.NET 表单身份验证。
可以在 SharePoint 管理中心网站的“编辑验证”页上将特定区域的验证类型设置为表单身份验证。
这会自动将在 Web.config 文件验证元素中为该区域指定的模式更改为表单。
例如:
<authentication mode="Forms">
</authentication>
注册成员资格提供程序。
如果要使用本地服务器上的 Microsoft SQL Server 数据库软件作为成员资格提供程序数据库,并为成员资格提供程序名称指定 AspNetSqlMembershipProvider,则可能不需要对 Web.config 文件进行任何其他更改。在这种情况下,如果 machine.config 文件具有正确的 AspNetSqlMembershipProvider 配置,则可以将其用于 Windows SharePoint Services,而不用进行任何更改。
如果 machine.config 文件中的默认配置不适用(例如,如果要在远程服务器上使用 SQL Server 数据库),则必须针对 Web 应用程序和管理中心网站编辑 Web.config 文件以在成员资格提供程序数据库的 connectionStrings
元素中指定连接信息。
例如:
<connectionStrings>
<add name="SqlProviderConnection" connectionString="server=SQLSERVERMACHINE;database=aspnetdb;Trusted_Connection=True" />
</connectionStrings>
将 SQLSERVERMACHINE 替换为在其上安装了 SQL Server 成员资格数据库的服务器计算机的名称。
接下来,添加 membership
和 providers
元素以在 Web.config 文件中注册成员资格提供程序。因为已经在 machine.config 文件中注册了默认提供程序,所以必须在 <add>
元素前面添加 <remove>
元素。
例如:
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add connectionStringName="SqlProviderConnection" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</membership>
对于 Web 应用程序和管理中心网站,membership
元素必须包含在 Web.config 文件的 system.web
元素内。
注册角色管理器(可选)。
通过将 roleManager
元素添加到 Web.config 文件的 system.web
元素中,可以使用 ASP.NET 的默认角色提供程序。例如:
<roleManager enabled="true" />
前面的语法使用在 machine.config 文件中定义的 AspNetSqlRoleProvider。此角色管理器可以连接到 SQL Server 的本地或远程实例中的 ASPNETDB 数据库。如果要将远程服务器上的 SQL Server 数据库用作角色提供程序数据库,则必须编辑 Web.config 文件以指定远程数据库服务器的连接信息。
例如:
<connectionStrings>
<add
name="SqlProviderConnection"
connectionString="server=SQLSERVERMACHINE; database=aspnetdb; Trusted_Connection=True"
/>
</connectionStrings>
将 SQLSERVERMACHINE 替换为承载 SQL 数据库的远程服务器的名称。可以为成员资格提供程序和角色管理器指定相同的 connectionStringName
元素值,因此不需要为角色提供程序添加新的 connectionStrings
元素。但是,如果要对角色提供程序使用不同的数据库,则必须为角色提供程序添加一个单独的 connectionStrings
元素。
接下来,需要添加 roleManager
和 providers
元素以在 Web.config 中注册 roleManager
提供程序。因为已经在 machine.config 文件中注册了默认提供程序,所以必须在 <add>
元素前面添加 <remove>
元素。
例如:
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add connectionStringName="SqlProviderConnection" applicationName="/" description="Stores and retrieves roles data from the local Microsoft SQL Server database" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
对于 Web 应用程序和管理中心网站,roleManager
元素必须包含在 Web.config 文件的 system.web
元素内。
注册 HTTP 模块。
不适用
Active Directory 成员资格提供程序
下表为通过 ASP.NET 表单身份验证使用 Active Directory 目录服务成员资格提供程序提供了 Web.config 文件项示例。
启用 ASP.NET 表单身份验证。
可以在管理中心的“编辑验证”页上将特定区域的身份验证类型设置为表单身份验证。
这会自动将在 Web.config 文件的验证元素中为该区域指定的模式更改为表单。
例如:
<authentication mode="Forms">
</authentication>
还可以在 forms 元素中指定登录页 URL,例如:
<authentication mode="Forms">
<forms loginUrl="/_layouts/login.aspx"></forms>
</authentication>
注册成员资格提供程序。
如果要将 Active Directory 服务器用于成员资格提供程序,则必须编辑 Web.config 文件以注册成员资格提供程序。为此,必须在 connectionStrings
元素中指定 Active Directory 服务器连接信息。
例如:
<connectionStrings>
<add name="ADConnectionString"
connectionString=
"LDAP://DirectoryServer/CN=Users,DC=DirectoryServer " />
</connectionStrings>
将 DirectoryServer 替换为成员资格目录服务器的名称。
<membership defaultProvider="MembershipADProvider">
<providers>
<add name="MembershipADProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADConnectionString"/>
</providers>
</membership>
备注
前面的示例未指定帐户凭据。如果未指定帐户凭据,则使用应用程序的进程标识来访问 Active Directory。
如果需要用另一个帐户访问 Active Directory,则可以在 connectionUsername
和 connectionPassword
属性中指定不同的帐户凭据,这意味着将以纯文本形式提供用户名和密码。因此,建议对此配置部分进行加密。有关详细信息,请参阅下面的文章:
注册角色管理器(可选)。
注册 HTTP 模块。
不适用
Web SSO 与 ADFS
Microsoft Windows Server 2003 R2 操作系统引入了 Active Directory 联合身份验证服务 (ADFS),这使组织能够安全地共享用户的标识信息。ADFS 提供 Web 单一登录 (SSO) 技术以在一个联机会话过程中向多个 Web 应用程序验证用户。
ADFS 附带以下两个成员资格和角色提供程序对:
SingleSignOnMembershipProvider/SingleSignOnRoleProviderWindows Server 2003 R2 附带的标准成员资格提供程序和角色提供程序
SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2在部分信任环境中运行的成员资格提供程序和角色提供程序。这些提供程序包含在 Windows Server 2003 R2 Service Pack 2 中。
SingleSignOnMembershipProvider/SingleSignOnRoleProvider
下表为使用标准提供程序的 Web SSO ADFS 环境提供了 Web.config 文件项示例。
启用 ASP.NET 表单身份验证。
<system.web>
<!-mode=[Windows|Forms|Passport|None]>
<authentication mode="Forms" />
</system.web>
注册成员资格提供程序。
<membership defaultProvider="SingleSignOnMembershipProvider">
<providers>
<add
name="SingleSignOnMembershipProvider"
type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"
/>
</providers>
</membership>
对于 fs
属性,将 FEDERATIONSERVER 替换为实际的服务器名称。
membership
元素必须包含在 Web.config 文件的 system.web
元素内。
注册角色管理器(可选)。
<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider">
<providers>
<add
name="SingleSignOnRoleProvider"
type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"
/>
</providers>
</roleManager>
对于 fs
属性,需要将 FEDERATIONSERVER 替换为实际的服务器名称。
注册 HTTP 模块。
<httpModules>
<add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />
</httpModules>
SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2
如果要实现第二个 ADFS 提供程序集,则用于注册成员资格提供程序和角色管理器的设置不同。下表为 Web SSO ADFS 环境(使用在部分信任环境中运行的提供程序)提供了 Web.config 文件项示例。
启用 ASP.NET 表单身份验证。
<system.web>
<!-mode=[Windows|Forms|Passport|None]>
<authentication mode="Forms" />
</system.web>
注册成员资格提供程序。
<membership defaultProvider="SingleSignOnMembershipProvider2">
<providers>
<add
name="SingleSignOnMembershipProvider2"
type="System.Web.Security.SingleSignOn.SingleSignOnMembershipProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fs=https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx
/>
</providers>
</membership>
对于 fs
属性,将 FEDERATIONSERVER 替换为实际的服务器名称。
membership
元素必须包含在 Web.config 文件的 system.web
元素内。
注册角色管理器(可选)。
<roleManager enabled="true" defaultProvider="SingleSignOnRoleProvider2">
<providers>
<add
name="SingleSignOnRoleProvider2"
type="System.Web.Security.SingleSignOn.SingleSignOnRoleProvider2, System.Web.Security.SingleSignOn.PartialTrust, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fs="https://FEDERATIONSERVER/adfs/fs/federationserverservice.asmx"
/>
</providers>
</roleManager>
对于 fs
属性,需要将 FEDERATIONSERVER 替换为实际的服务器名称。
注册 HTTP 模块。
<httpModules>
<add name="Identity Federation Services Application Authentication Module" type="System.Web.Security.SingleSignOn.WebSsoAuthenticationModule, System.Web.Security.SingleSignOn, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null" />
</httpModules>
下载此书籍
本主题包含在以下可下载书籍内,以方便您阅读和打印:
有关可下载书籍的完整列表,请参阅 Windows SharePoint Services 的可下载书籍(该链接可能指向英文页面) 。