我们有一些sharepoint站点,它们使用我们为自定义内容开发的各种UserControl,包括身份验证和授权。在其中一个站点上,当管理员创建新用户时,它会创建此最小长度字符数的密码,保存用户信息并向用户的电子邮件地址发送电子邮件。一切都很好......直到......公司刚刚制定了一项新政策,即所有用户必须使用10个字符的最小密码与之前的8个密码。这个值是在一个静态类的汇编中,所以我们可以做类似的事情
//Assembly 1 defines rules and logic
public static class AccountRules
{
public static int PasswordMinimumLength = 10;
}
//Assembly 2 calls references Assembly 1
Status CreateUser(User u)
{
if (u.Password == null)
{
u.Password = GeneratePassword();
}
return DAL.SaveUser(User);
}
string CreatePassword()
{
string pass = "";
for (int i = 0; i < AccountRules.PasswordMimimumLength; i++)
{
pass += RandomChar();
}
}
我们将包含此常量,重建依赖站点和已发布控件的程序集更新到dev服务器。现在我创建一个新帐户,它仍然生成8个字符的密码!我用反射器检查组件,常量长度是10.我从GAC中移除了这个组件,并重新安装了新的10个字符,并且仍然生成了8个字符密码。我们在IIS中重新启动了站点,没有运气,共享点应用程序池,整个IIS实例,物理盒以及仍然是8个字符的密码。还有什么地方可能会缓存这种情况?我正在把这头发撕掉。提前感谢上帝专家提供的任何帮助。
答案 0 :(得分:3)
您可以采取一些措施来帮助尝试追踪此问题。
Fusion Log Viewer很可能能满足您的需求。
答案 1 :(得分:1)
我不确定您的身份验证系统是如何自定义的。通常我希望在成员资格定义中的 web.config 中找到最小密码长度限制。如果您正在使用某种会员模型,那么这就是我要检查的第一个地方。 (简而言之:也许它不是你的DLL定义最小密码长度,即使有人在那里放了一个常量!)