正常的密码应该是“SoQqOP2vGAXvtxDWik63bvAsaUY=”
而使用错误的项目注册新用户产生的密码却是“rTn3JFHyGJtS7Qqy8ukbJ60vDd9llRh82zJt76O2dSc=”密码的长度都已经不一样了。应该是处理逻辑有问题。用反射器打开官方的组件和SDK项目中发现CSMembershipProvider类的不同的地方
//官方2.1sp2版本
public class CSMembershipProvider : SqlMembershipProvider, IApplicationName
{
// Methods
public CSMembershipProvider();
// Properties
public override string ApplicationName { get; set; }
}
Expand Methods
public class CSMembershipProvider : SqlMembershipProvider, IApplicationName
{
// Methods
public CSMembershipProvider();
// Properties
public override string ApplicationName { get; set; }
}
Expand Methods
public class CSMembershipProvider : CommunityServer.SqlMembershipProvider.SqlMembershipProvider, IApplicationName
{
public override string ApplicationName
{
get
{
string text1 = CSContext.Current.SiteSettings.ApplicationName;
if (text1 == null)
{
text1 = base.ApplicationName;
}
return text1;
}
set
{
base.ApplicationName = value;
}
}
}
{
public override string ApplicationName
{
get
{
string text1 = CSContext.Current.SiteSettings.ApplicationName;
if (text1 == null)
{
text1 = base.ApplicationName;
}
return text1;
}
set
{
base.ApplicationName = value;
}
}
}
很明显2.1sp2版本的CSMembershipProvider已经放弃从CS自定义的类CommunityServer.SqlMembershipProvider.SqlMembershipProvider转而使用.NET2.0版本的SqlMembershipProvider。替换掉后重新编译。新用户注册注销退出再登录后问题解决。看看密码,也回复正常。