按照教程在web.config中添加了如下代码后(具体添加方法见教程) :
<
membership
>
< providers >
< clear />
< add name ="AspNetSqlMembershipProvider"
connectionStringName ="LocalSqlServer"
minRequiredPasswordLength ="4"
minRequiredNonalphanumericCharacters ="0"
type ="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ membership >
< roleManager enabled ="true" >
< providers >
< clear />
< add name ="AspNetSqlRoleProvider"
connectionStringName ="LocalSqlServer"
type ="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ roleManager >
< providers >
< clear />
< add name ="AspNetSqlMembershipProvider"
connectionStringName ="LocalSqlServer"
minRequiredPasswordLength ="4"
minRequiredNonalphanumericCharacters ="0"
type ="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ membership >
< roleManager enabled ="true" >
< providers >
< clear />
< add name ="AspNetSqlRoleProvider"
connectionStringName ="LocalSqlServer"
type ="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ roleManager >
发现在网站的“网站设置 -> 人员与组”中,无法添加新注册的用户。重启IIS后,问题依然存在。怎么办?只好到数据库中找问题了,在数据表aspnet_users中,发现在修改web.config前后,注册的用户信息中,字段ApplicationId的值不同。又到数据表aspnet_Applications中查看后,发现在aspnet_users表中出现的两个ApplicationId分别属于在MOSS上创建的网站和在VS.Net2005中创建的Project的。
有了这个发现,尝试着将aspnet_users表中,所有的ApplicationId都改成MOSS上的网站ApplicatoinId。再去网站上一试,发现修改了web.config后注册的用户已经可以添加了。
所有的用户都是用我在VS.Net2005创建的工程中添加的, 究竟是什么原因造成了这种使用两个不同的ApplicationId的情况还没有搞清楚。
上面的是比较笨的解决办法。在一位仁兄的blog里找到了一个很简单的解决方法,即在web.config中加入该网站/工程应当使用的ApplicationId即可。这样一来,将上面的代码改为如下:
<
membership
>
< providers >
< clear />
< add name ="AspNetSqlMembershipProvider"
applicationName ="/"
connectionStringName ="LocalSqlServer"
minRequiredPasswordLength ="4"
minRequiredNonalphanumericCharacters ="0"
type ="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ membership >
< roleManager enabled ="true" >
< providers >
< clear />
< add name ="AspNetSqlRoleProvider"
applicationName ="/"
connectionStringName ="LocalSqlServer"
type ="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ roleManager >
< providers >
< clear />
< add name ="AspNetSqlMembershipProvider"
applicationName ="/"
connectionStringName ="LocalSqlServer"
minRequiredPasswordLength ="4"
minRequiredNonalphanumericCharacters ="0"
type ="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ membership >
< roleManager enabled ="true" >
< providers >
< clear />
< add name ="AspNetSqlRoleProvider"
applicationName ="/"
connectionStringName ="LocalSqlServer"
type ="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</ providers >
</ roleManager >
问题就解决了。
注,applicationName的内容可填写自己需要的内容,不一定是“/”。