Как добраться SecurityToken
от ClaimsPrincipal
?Как получить SecurityToken из ClaimsPrincipal?
Мне нужно это, потому что я хочу передать его из приложения MVC в службу WCF в AuthenticationManager/Authenticate.
В методе Authenticate значение BootstrapContext равно null. И даже после аутентификации он иногда получает нуль, что делает его не надежным выбором для меня.
Это мой класс менеджер аутентификации:.
общественного переопределение ClaimsPrincipal Authenticate (строка ResourceName, ClaimsPrincipal incomingPrincipal) { строка passportID = incomingPrincipal.Identity.GetPassportID() ToString();
try
{
// I need the token here
SecurityToken token = GetToken(incomingPrincipal);
return base.Authenticate(resourceName, incomingPrincipal);
}
catch (Exception ex)
{
throw new SecurityException("User is not authenticated.", ex);
}
}
Спасибо pepo .. Просто интересно, есть ли способ получить GetActAsToken из IdP, не создавая его локально снова. Я использую Thinktecture. – Homam
Я сохранил токен ActAs в кеше памяти. Я установил истечение срока действия объекта (токена) в кеш за некоторое время до фактического истечения токена. Затем, если я не нашел токен ActAs для некоторого пользователя, я снова запросил его у IdP. Это сработало для меня, и по сей день у меня не было никаких проблем с этим. – pepo