Тем временем я нашел ответы на свои вопросы:
SecurityKey
SecurityKey используется для криптографических операций.Это не требуется для реализации токенов на предъявителя.Поэтому вы можете просто вернуть пустой список в соответствующем свойстве SecurityToken :
public override ReadOnlyCollection<SecurityKey> SecurityKeys
{
get { return new List<SecurityKey>().AsReadOnly(); }
}
SecurityKeyIdentifierClause
Как уже указывалосьдругой ответ SecurityKeyIdentifierClause является своего рода уникальным идентификатором токена безопасности.Он используется SecurityTokenResolver для возврата соответствующего SecurityToken для указанного SecurityKeyIdentifierClause .
Вероятно, лучшее решение для ваших собственных Реализация SecurityTokenHandler возвращает LocalIdKeyIdentifierClause с идентификатором вашего токена в виде localId параметр:
public override SecurityKeyIdentifierClause CreateSecurityTokenReference(SecurityToken token, bool attached)
{
if (token == null)
throw new ArgumentNullException("token");
return new LocalIdKeyIdentifierClause(token.Id);
}
SecurityKeyIdentifier
A SecurityKeyIdentifier представляет собой набор SecurityKeyIdentifierClauses .При необходимости вы можете использовать реализацию в System.IdentityModel.Tokens здесь.Обычно нет необходимости заботиться об этом самостоятельно.