【发布时间】:2010-09-28 14:06:13
【问题描述】:
我们有一些共享点站点,它们使用我们为自定义内容(包括身份验证和授权)开发的各种用户控件。在其中一个站点上,当管理员创建新用户时,它会创建此最小长度字符的密码,保存用户信息并向用户电子邮件地址发送电子邮件。一切都很好,直到......公司刚刚发布了一项新政策,即所有用户必须使用 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();
}
}
我们更新了包含此常量的程序集,重建了相关站点并将控件发布到了开发服务器。现在我创建了一个新帐户,它仍在制作 8 个字符的密码!我检查了带有反射器的组件,恒定长度为 10。我从 GAC 中删除了这个组件,并重新安装了新的组件,最小 10 个字符,仍然生成 8 个字符的密码。我们在 IIS 中重新启动了站点,但没有成功,sharepoint 应用程序池、整个 IIS 实例、物理框和仍然是 8 个字符的密码。发生这种情况的 dll 还可能缓存在哪里?我在这个上扯掉我的头发。提前感谢各位神一样的专家提供的任何帮助。
【问题讨论】:
-
您确定 CreatePassword() 没有在计时器作业中运行吗?
标签: .net sharepoint iis gac dll