博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

MOSS点滴(4):实现Form认证

Posted on 2008-04-29 21:12  生鱼片  阅读(2286)  评论(14编辑  收藏  举报

本文主要参考了网上的一些文章,但有些文章有些地方说的不是很明确,我又自己测试了下,并重新整理了这文。

一.生成数据库,使用aspnet_regsql工具,路径如下图:

clip_image002

 

二:生成数据库后,我们建立一个Web Application用于创建用户,我们只需要在Default.aspx页面拖放一个CreateUserWizard控件即可,我们主要的动作都在web.config上,代码如下:

<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings>
<remove name=" CaryForm" />
<add name="CaryForm" connectionString="Server=.;Database=aspnetdb;uid=sa;pwd=123456" 
providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" connectionStringName="CaryForm" minRequiredPasswordLength="4"
minRequiredNonalphanumericCharacters="0" type="System.Web.Security.SqlMembershipProvider, System.Web,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
/> </providers> </membership> <compilation debug="true" /> <authentication mode="Forms" /> </system.web> </configuration>

这里有几个重要的地方:

1. <authentication mode="Forms" />,要将认证改成为Forms的。

2.配置连接字符串:
<add name="CaryForm" connectionString="Server=.;Database=aspnetdb;uid=sa;pwd=123456"
providerName="System.Data.SqlClient" />

3.下面 这部分是更改Membership本身对密码复杂度的要求 :
<add name="AspNetSqlMembershipProvider" connectionStringName="CaryForm"
minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
/>

三:现在我们需要在我们的站点和Sharepoint管理中心的web.config文件中添加数据库的连接字符串,路径在C:\Inetpub\wwwroot\wss\VirtualDirectories下面。
<add name="CaryForm" connectionString="Server=.;Database=aspnetdb;uid=sa;pwd=123456"
providerName="System.Data.SqlClient" />

四:更改web 应用程序的验证提供程序,在”管理中心—应用程序管理—验证提供程序”中,默认的是windows验证。

clip_image004

五:创建用户,测试

1. 使用我们建立的web application项目创建一个账户,如果你要想测试该账户创建的是否成功,可以使用login和loginName控件。

2. 去“管理中心—应用程序管理—网站集所有者“中将我们创建的用户添加为网站集管理员,网上的文章这个地方说的不是很清楚,我们在管理中心的web.config里设置连接字符串就是为了在此可以找到我们建立的用户。

3. 现在我们在打开我们的网站就会出现登陆框,输入我们刚刚创建的用户,如果登陆成功就说明我们我们的Form认证已经配置好了。这个地方有人反应输入用户名和密码后页面又刷新了一次,并没有提示用户名密码错误,我也遇到了这种情况,我把IE关闭从新打开在输入就可以了。

clip_image006