У меня довольно другой вариант использования, когда мне нужно отслеживать историю входа в систему, и для их отслеживания я создаю новый GUID в IProfileService и добавляю его в претензии, а также в БД, чтобы продолжить переднюю задачу.
Проблема в том, что я получаю несколько записей в БД для одного щелчка входа, который начинает отображать две записи для каждого входа.
GUID используется для отслеживания текущего сеанса входа в систему (у нас есть параллельный сценарий входа).
Вопрос 1 - Правильно ли создавать GUID внутри этой функции, если нет, то где это сделать?
Вопрос 2. Предоставляет ли IDSvr уникальный идентификатор для каждого входа в систему, чтобы я мог просто использовать его в претензиях.
Вопрос 3. Как остановить/свести к минимуму другие вызовы БД, сделанные из-за нескольких вызовов.
public async Task GetProfileDataAsync(ProfileDataRequestContext context)
{
var user = DataBaseUserRetrive();
var claims = new List<Claim>
{
//All Claims from user
};
string deviceIdGuid = Guid.NewGuid().ToString();
Claim deviceId = new Claim("device_id", deviceIdGuid ,ClaimValueTypes.String);
claims.Add(deviceId);
await databaseCall(user,deviceIdGuid );
context.IssuedClaims = claims;
}
PS: - я новичок в Identity Server