Служба WCF выдает ошибку при проверке учетных данных против PrincipalContext?
У меня есть служба WCF, которая работает, если я использую один логин, но выдает следующую ошибку, если я пытаюсь войти с любым другим логином. Как ни странно, если я изменю пароль на рабочий логин, новый пароль не будет работать, но старый все равно будет работать. Это как будто что-то кеширует.
Ошибка, которую я получаю, такова:
Несколько подключений к серверу или общему ресурсу одним и тем же пользователем, используя более одного имени пользователя, не допускаются. Отключите все предыдущие подключения к серверу или общему ресурсу и попробуйте снова
Код, который вызывает ошибку:
public UserModel Login(string username, string password)
{
if (username == null || password == null)
return null;
using (var pContext = new PrincipalContext(ContextType.Machine))
{
if (pContext.ValidateCredentials(username, password))
{
using (var context = new MyEntities())
{
// I can tell from a SQL trace that this piece never gets hit
var user = (from u in context.Users
where u.LoginName.ToUpper() == username.ToUpper()
&& u.IsActive == true
select u).FirstOrDefault();
if (user == null)
return null;
var userModel = Mapper.Map<User, UserModel>(user);
userModel.Token = Guid.NewGuid();
userModel.LastActivity = DateTime.Now;
authenticatedUsers.Add(userModel);
sessionTimer.Start();
return userModel;
}
}
}
return null;
}
Я вижу связанный вопрос здесь, который предполагает, что проблема с PrincipalContext
, но нет ответа
Обновить
Работает..... Я перезапустил наш рабочий сервер, потому что нам нужно, чтобы это работало для кого-то важного в течение следующего часа, и я подумал, так как предыдущая ссылка предполагала, что перезагрузка получит один логин, в котором я просто перезагрузите компьютер и войдите в систему, используя логин, необходимый для его работы, а после перезагрузки все работает абсолютно идеально. Я провел большую часть вчера, оставаясь поздно, и все это утро, пытаясь понять это. Мы не должны перезагружать наш веб-сервер, но было важно, чтобы это работало, поэтому я все равно это сделал, и теперь все работает так, как должно.
Я все еще хотел бы знать, в чем заключалась его проблема. Я думаю, что что-то вызвало PrincipalContext
неправильно распоряжаться, что мешало мне войти в систему с любым другим набором учетных данных.
1 ответ
Перезапуск сервера устранил проблему, хотя я все еще хотел бы знать, в чем проблема.
Я думаю, что что-то вызвало PrincipalContext
неправильно распоряжаться, что мешало мне войти в систему с любым другим набором учетных данных.