У меня есть служба 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
, что не позволило мне войти в систему с любым другим набором учетных данных.