源文链接:http://technet.microsoft.com/zh-cn/library/cc262069.aspx
本文内容:
本文包括几个常见的表单身份验证提供程序和 Web 单一登录 (SSO) 身份验证提供程序的示例配置设置。
SQL 成员资格提供程序
下表为使用 ASP.NET 表单身份验证连接到 SQL 成员资格提供程序提供了 Web.config 文件项示例。
配置步骤 |
说明和 Web.config 文件项示例 |
启用 ASP.NET 表单身份验证。 |
可以在 SharePoint 管理中心网站的“编辑验证”页上将特定区域的身份验证类型设置为表单身份验证。
这会自动将在 Web.config 文件的 authentication 元素中为该区域指定的模式更改为表单。
例如:
<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 文件项示例。
注意: |
这将仅适用于单个域的情况。 |
配置步骤 |
说明和 Web.config 文件项示例 |
启用 ASP.NET 表单身份验证。 |
可以在管理中心的“编辑验证”页上将特定区域的身份验证类型设置为表单身份验证。
这会自动将在 Web.config 文件的 authentication 元素中为该区域指定的模式更改为表单。
例如:
<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 模块。 |
不适用 |
LDAP 成员资格提供程序
下表为将 ASP.NET 表单身份验证与轻型目录访问协议 (LDAP) 成员资格提供程序一起使用提供了 Web.config 文件项示例。
配置步骤 |
说明和 Web.config 文件项示例 |
启用 ASP.NET 表单身份验证。 |
可以在管理中心的“编辑验证”页上将特定区域的验证类型设置为表单身份验证。
这会自动将在 Web.config 文件的 authentication 元素中为该区域指定的模式更改为表单。
<system.web>
<!-mode=[Windows|Forms|Passport|None]>
<authentication mode="Forms" />
</system.web> |
注册成员资格提供程序。 |
membership 元素必须包含在 Web.config 文件的 system.web 元素内。
<membership defaultProvider="LdapMembershipProvider">
<providers>
<add
name="LdapMembership"
type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
server="DC"
port="389"
useSSL="false"
userDNAttribute="distinguishedName"
userNameAttribute="sAMAccountName"
userContainer="CN=Users,DC=userName,DC=local"
userObjectClass="person"
userFilter="(|(ObjectCategory=group)(ObjectClass=person))"
scope="Subtree"
otherRequiredUserAttributes="sn,givenname,cn"
/>
</providers>
</membership>
您将需要更改为 server 和 userContainer 属性指定的值以匹配您的环境。 |
注册角色管理器(可选)。 |
<roleManager defaultProvider="LdapRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName=".PeopleDCRole">
<providers>
<add
name="LdapRoleProvider"
type="Microsoft.Office.Server.Security.LDAPRoleProvider, Microsoft.Office.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
server="DC"
port="389"
useSSL="false"
groupContainer="DC=userName,DC=local"
groupNameAttribute="cn"
groupMemberAttribute="member"
userNameAttribute="sAMAccountName"
dnAttribute="distinguishedName"
groupFilter="(ObjectClass=group)"
scope="Subtree"
/>
</providers>
</roleManager>
您将需要更改为 server 和 groupContainer 属性指定的值以匹配您的环境。 |
注册 HTTP 模块。 |
不适用 |
Web SSO 与 ADFS
Microsoft Windows Server 2003 R2 操作系统引入了 Active Directory 联合身份验证服务 (ADFS),这使组织能够安全地共享用户的标识信息。ADFS 提供 Web 单一登录 (SSO) 技术以在一个联机会话过程中向多个 Web 应用程序验证用户。
ADFS 附带以下两个成员资格和角色提供程序对:
-
SingleSignOnMembershipProvider/SingleSignOnRoleProvider Windows Server 2003 R2 附带的标准成员资格提供程序和角色提供程序
-
SingleSignOnMembershipProvider2/SingleSignOnRoleProvider2 在部分信任环境中运行的成员资格提供程序和角色提供程序。这些提供程序包含在 Windows Server 2003 R2 Service Pack 2 中。
SingleSignOnMembershipProvider/SingleSignOnRoleProvider
下表为使用标准提供程序的 Web SSO ADFS 环境提供了 Web.config 文件项示例。
配置步骤 |
说明和 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 文件项示例。
配置步骤 |
说明和 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>
|
下载此书籍