У меня довольно большой и болезненный опыт работы с API Facebook, и я могу заявить, что:
Самый частый вызов API графа, который я делаю, содержит много вложенных полей, и я заметил, что достиг «600 вызовов / 600 секунд» после выполнения его только 200 раз. В общем, в моем случае это количество вызовов для 3 ...
У вас есть много других ограничений скорости, но ни один из них не задокументирован надлежащим образом ...
Я нашел запись в блоге, в которой объясняется, как это сделать, хотя, похоже, не существует полностью управляемого способа сделать это. Чтобы получить идентификатор пользователя, вы должны использовать вызовы метода pinvoke / native.
http://www.infosysblogs.com/microsoft/2007/09/logging_events_with_user_detai_1.html
Для вышесказанного он регистрирует пользователя как ASPNET или СЕТЕВЫЕ СЛУЖБЫ, или зарегистрированный пользователь для консольных приложений. Сам вызов api принимает параметр указателя на SID. Я не пытался проверить, возможен ли спуфинг.
Имя пользователя в журнале событий зависит от контекста, в котором работает ваше приложение. Его нельзя установить явно. Если это приложение ASP.NET, возможно, оно использует учетную запись службы.
РЕДАКТИРОВАТЬ: Я нашел аналогичный вопрос . Он предлагает использовать функцию Win32 Api ReportEvent для установки информации о пользователе.
Ну, пользователь - это текущий пользователь, под которым работает ваш домен приложения. Это невозможно установить, и Windows не позволит вам «обмануть» другого пользователя.
System.Diagnostics
позволяет вашему приложению ASP.NET прямой доступ в журнал событий Windows. Поскольку ваше приложение является приложением ASP.NET, вы можете использовать
HttpContext.Current.User.Identity.Name
, чтобы получить текущее имя пользователя (в данном случае будет токен аутентификации формы, поскольку вы используете аутентификацию с помощью форм) .