Хорошо, поэтому, если я правильно понимаю ваше приложение, вы используете олицетворение и создаете подписки для всех олицетворенных пользователей. И когда вы получаете событие из подписки, вы хотите знать, для какого пользователя это событие произошло. Если это так, разве вы не можете оставить свои подписки сопоставленными с пользователем, для которого была создана подписка?
Простого Dictionary<StreamingSubscription, ImpersonateduserId>
было бы достаточно
А когда вы получаете уведомление, вы получаете объект подписки из свойства NotificationEventArgs.Subscription
и находите идентификатор пользователя, для которого была создана подписка на вашей карте. Из ImpersonatedUserId
вы можете получить SMTP-адрес (свойство Id
) и узнать, какой именно пользователь был.