Проблемы с кэшированием DLL в IIS / Sharepoint GAC - PullRequest
2 голосов
/ 28 сентября 2010

У нас есть несколько сайтов sharepoint, которые используют различные UserControls, которые мы разработали для пользовательских вещей, включая аутентификацию и авторизацию. На одном из этих сайтов, когда администратор создает нового пользователя, он создает пароль с минимальным количеством символов, сохраняет информацию о пользователе и отправляет электронное письмо на адрес электронной почты пользователя. Все было хорошо до тех пор, пока .... Корпоративная компания только что утвердила новую политику, согласно которой все пользователи должны использовать минимальный пароль длиной 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 возможно кешируется, что это происходит? Я срываю свои волосы на этом. Заранее благодарен за любую помощь от вас, богоподобных экспертов.

Ответы [ 2 ]

3 голосов
/ 28 сентября 2010

У вас есть несколько способов помочь отследить это.

  1. Убедитесь, что он не скопирован локально в папку / bin вашего приложения
  2. Используйте Fusion Log Viewer , чтобы увидеть, что на самом деле связано

Скорее всего, Fusion Log Viewer даст вам то, что вам нужно.

1 голос
/ 28 сентября 2010

Я не уверен, насколько точно настроена ваша система аутентификации. Обычно я ожидаю найти ограничение минимальной длины пароля в web.config внутри определения членства. Если вы используете какую-то модель членства, то это первое место, которое я бы проверил. (В двух словах: возможно, не ваша DLL определяет минимальную длину пароля, даже если кто-то поместил туда константу!)

...