Можно ли запустить WIF без LoadUserProfile = True

Я пытаюсь запустить приложение проверяющей стороны WIF на общем узле. Они не установят для параметра IIS LoadUserProfile значение true, поэтому я получаю следующее сообщение об ошибке:

Сообщение: операция защиты данных не удалась. Это могло быть вызвано тем, что профиль пользователя не загружен для контекста пользователя текущего потока, что может иметь место, когда поток олицетворяет себя. ExceptionStackTrace: в System.Security.Cryptography.ProtectedData.Protect (Byte [] userData, Byte [] optionalEntropy, DataProtectionScope scope) в Microsoft.IdentityModel.Web.ProtectedDataCookieTransform. else ... но я не смог найти способ сделать это в C, так как определенный (MACRO) оператор препроцессора работает только ...

Я хотел бы написать код на C примерно так :

if(defined(MACRO))
  ...
else
  ...

но я не смог найти способ сделать это в C , так как определенный (MACRO) препроцессорный оператор работает только внутри # if. Есть ли способ сделать это?

Что мне действительно нравится делать, так это писать:

ASSERT(UART, var >= 0);

где

#define ASSERT(NAME, TEST) \
  do { \
    if (defined(NAME) && !(TEST)) \
      printf("Assert failed"); \
  } while(0)

, таким образом, я мог бы включить проверку ASSERT, когда макрос определен, и если он не определен, тогда утверждения не должны проверяться. Если вы попытаетесь это сделать, то получите:

implicit declaration of function `defined'

, что вполне понятно, поскольку компилятор GCC не находит оператор препроцессора defined () .

11
задан Brian Tompsett - 汤莱恩 6 July 2016 в 19:08
поделиться