IIS / Sharepoint GAC上的DLL缓存问题

时间:2010-09-28 14:06:13

标签: .net sharepoint iis gac dll

我们有一些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个字符的密码。还有什么地方可能会缓存这种情况?我正在把这头发撕掉。提前感谢上帝专家提供的任何帮助。

2 个答案:

答案 0 :(得分:3)

您可以采取一些措施来帮助尝试追踪此问题。

  1. 确保未将其本地复制到应用程序的/ bin文件夹
  2. 使用Fusion Log Viewer查看实际绑定的内容
  3. Fusion Log Viewer很可能能满足您的需求。

答案 1 :(得分:1)

我不确定您的身份验证系统是如何自定义的。通常我希望在成员资格定义中的 web.config 中找到最小密码长度限制。如果您正在使用某种会员模型,那么这就是我要检查的第一个地方。 (简而言之:也许它不是你的DLL定义最小密码长度,即使有人在那里放了一个常量!)