У меня есть единичный тест, который прошел для всех локальных сред devleoper и нашего локального сервера сборки в течение примерно 2 лет без проблем.ClaimTypes.PrimarySid отсутствует в Identity при тестировании, но только в некоторых средах
Теперь я перемещаю проект в другую сборку - визуальную студию tfs онлайн с помощью как размещенных, так и локальных агентов сборки. Тест только терпит неудачу, когда сборка запускается через TFS в сети, и не удается, использует ли я локальный или закрытый агент сборки. Агент частной сборки зарегистрирован как служба, работающая под локальной учетной записью Windows.
Возможно, я понял, что это ошибка на размещенном сервере (возможно, он не использует вход в Windows), но поскольку он также терпит неудачу в частном агенте сборки, я немного озадачен.
var incomingIdentity = new ClaimsIdentity(Thread.CurrentPrincipal.Identity);
incomingIdentity.AddClaim(
new Claim(ClaimTypes.NameIdentifier,
((ClaimsIdentity)Thread.CurrentPrincipal.Identity)
.FindAll(ClaimTypes.PrimarySid)
.Single() //Exception: Sequence contains no elements
.Value)
);
Почему ClaimType.PrimarySid
отсутствует из входящего потока идентичности?
на основе моего теста (типа выхода всех претензий) с MSTest.exe, VSTest.Console.exe, TFS и VSTS private service агент с сервисным или интерактивным режимом, он просто содержит http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name. (Тест запуска в Visual Studio отлично работает). Каков результат, если вы запускаете тест через MSTest или VSTest.Console.exe? –