MOSS2007实现表单验证教程

需积分: 0 0 下载量 10 浏览量 更新于2024-07-29 收藏 1.51MB PDF 举报
"这篇文章主要介绍了如何在Microsoft Office SharePoint Server 2007 (MOSS 2007) 中设置和实现表单身份验证(Forms Authentication)。通过这种方法,用户可以通过自定义的登录页面进行身份验证,而非使用默认的Windows集成身份验证。" 在MOSS 2007中配置表单身份验证涉及以下步骤: 1. 创建ASP.NET 2.0 表单验证数据库: 首先,你需要创建一个用于存储用户账户和角色信息的数据库。这可以通过运行`aspnet_regsql.exe`工具完成,该工具是.NET Framework 2.0的一部分。使用此工具,你可以创建一个名为`AspNetDb`的数据库,并确保所有必要的表和存储过程都被添加。 2. 配置成员资格提供程序和角色提供程序: 一旦数据库创建完毕,你需要在其中添加用户。这可以通过使用ASP.NET网站管理工具完成,这是一个在Visual Studio 2005中可用的工具。创建或编辑项目的`web.config`文件,添加一个新的`connectionStrings`节点,以指定连接到新创建的数据库。例如,设置`connectionString`指向你的SQL Server实例和`aspnetdb`数据库。 ```xml <connectionStrings> <remove name="AspNetSqlProvider"/> <add name="AspNetSqlProvider" connectionString="server=SQL服务器名称; database=aspnetdb; Trusted_Connection=True" /> </connectionStrings> ``` 接下来,你需要在`web.config`文件的`<system.web>`节点下,配置`membership`和`roleManager`提供程序。这样,SharePoint将知道如何与你的数据库交互以处理用户身份验证和角色管理。 ```xml <!--MembershipProvider--> <membership defaultProvider="AspNetSqlProvider"> <providers> <add name="AspNetSqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="AspNetSqlProvider" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" passwordAttemptWindow="10" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" /> </providers> </membership> <!--RoleManager--> <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> <providers> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="AspNetSqlProvider" /> </providers> </roleManager> ``` 3. 创建自定义登录页面: MOSS 2007需要一个自定义的登录页面,以便用户能够输入他们的用户名和密码。这个页面需要与你在`web.config`中配置的身份验证提供程序配合工作,以验证用户凭据。 4. 配置SharePoint站点: 在SharePoint管理中心,你需要修改站点的权限策略,选择使用“表单身份验证”作为身份验证方法。同时,确保正确配置了应用程序池的身份,使其能够访问数据库。 5. 测试和调试: 设置完成后,测试你的SharePoint站点,确保用户能够通过新创建的登录页面成功登录,并能访问他们应有的权限范围。 通过以上步骤,你可以在MOSS 2007环境中启用表单身份验证,为用户提供更加灵活和自定义的身份验证体验。这种方式特别适用于那些希望使用非Windows域凭证或者需要与外部系统集成的场景。