IdentityServer4 с MIM и ADFS

Один из вариантов, хотя и опасен, заключается в том, чтобы убедить GCC опустить требуемое ABI главное подчеркивание.

  • -fleading-underscore Этот параметр и его аналог , -fno-leading-underscore, принудительно изменить способ отображения символов C в объектном файле. Одно использование - это ссылка на устаревший ассемблерный код. Предупреждение: переключатель -fleading-underscore заставляет GCC генерировать код, который не является бинарным, совместимым с кодом, сгенерированным без этого коммутатора. Используйте его для соответствия двоичному интерфейсу приложения, отличного от стандартного. Не все цели обеспечивают полную поддержку этого коммутатора.
blockquote>

Другой, более безопасный вариант - явно указать GCC имя, которое будет использовать.

5.39 Управление именами, используемыми в коде ассемблера

Вы можете указать имя, которое будет использоваться в коде ассемблера для функции или переменной C, написав ключевое слово asm (или __asm__) после объявления следующим образом:

     int foo asm ("myfoo") = 2;

Указывает, что имя, которое будет использоваться для переменной foo в коде ассемблера, должно быть `` myfoo ' rather than the usual \``_foo '.

В системах, где обычно подчеркивается символ подчеркивания добавленный к имени функции или переменной C, эта функция позволяет вам определять имена для компоновщика, которые не начинаются с подчеркивания.

Не имеет смысла использовать эту функцию с нестационарным локальная переменная, так как такие переменные не имеют имен ассемблера. Если вы пытаетесь поместить переменную в определенный регистр, см. Явные реестры . GCC в настоящее время принимает такой код с предупреждением, но, вероятно, будет изменен, чтобы в будущем выпустить ошибку, а не предупреждение.

Вы не можете использовать asm таким образом в функции определение ; но вы можете получить тот же эффект, написав декларацию для функции перед ее определением и помещая там asm, например:

 extern func () asm ("FUNC");

 func (x, y)
      int x, y;
 /* ... */

. Вы должны убедиться, что ассемблер называет вас выберите, не конфликтуйте с другими символами ассемблера. Кроме того, вы не должны использовать имя регистра; что приведет к совершенно недействительному ассемблерному коду. GCC пока не имеет возможности хранить статические переменные в регистрах. Возможно, это будет добавлено.

blockquote>

В вашем случае

extern int bar(int x) asm("bar");

должно указывать GCC, что «bar использует имя asm` `bar` ', хотя это функция ccall ".

0
задан user217648 17 January 2019 в 13:25
поделиться

1 ответ

Это будет зависеть от случаев использования, которые вы планируете.

idsrv4 имеет плагины SAML и WS-Fed, поэтому может обрабатывать все протоколы.

Это только делает аутентификацию не предоставлением пользователя. Для этого вы можете посмотреть на AdminUI .

Масштабирование может быть проблемой?

Тот факт, что это открытый исходный код, является большим преимуществом, поскольку вы можете расширять функциональность с помощью точек расширения.

0
ответ дан nzpcmad 17 January 2019 в 13:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: