Серверный компонент WCF получает устаревшее имя пользователя - PullRequest
2 голосов
/ 09 июня 2010

Я переопределяю System.IdentityModel.Policy.IAuthorizationPolicy.Evaluate следующим образом:

public bool Evaluate(EvaluationContext evaluationContext,ref object state)
{
    var ids = (IList<IIdentity>)evaluationContext.Properties["Identities"];
    var userName = ids[0].Name;

    // look up "userName" in a database to check for app. permissions

}

Недавно один из пользователей изменил свое имя пользователя в Active Directory. Она в состоянии войти в свою Windows-систему нормально с ее новым именем пользователя, но когда она пытается запустить клиентскую часть нашего приложения, сервер получает свое старое имя пользователя в переменной "userName" приведенный выше код, который портит нашу аутентификацию (поскольку ее старое имя пользователя больше не находится в нашей базе данных).

Другая часть информации: это происходит только тогда, когда она подключается к коду сервера на производственном сервере. У нас на сервере QA работает один и тот же код сервера, и у нет этой проблемы (код сервера QA получает свое правильное (новое) имя пользователя)

Есть идеи, что может происходить?

Редактировать: Они перезагрузили сервер Prod, и проблема была решена. Все еще хотел бы знать, что, возможно, происходило и могло ли это повториться ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...