Для SPA Microsoft рекомендовала использовать неявный грандиозный поток для аутентификации и авторизации. Вы можете пойти на неявный поток грантов. Чтобы получить токен с использованием неявного потока, выполните следующие действия:
Задайте URL-адрес своего ответа на портале Azure. У меня есть логин через почтальона, поэтому я ввел URL обратного вызова почтальона. См. Снимок экрана ниже:
Тест на почтальона для этого введите необходимую информацию, как показано ниже , Убедитесь, что вы выбрали тип аутентификации OAuth 2.0:
В ответ вы получите ваш токен, как показано ниже:
Вы можете получить доступ к своему ресурсу с помощью этого токена. см. приведенный ниже пример:
Для получения дополнительной информации вы можете найти здесь руководство Microsoft https://docs.microsoft. com / en-us / azure / active-directory / develop / v2-oauth2-auth-code-flow
также пример GitHub https://github.com/oauthjs/angular- oauth2
Правильный протокол аутентификации для вашего приложения вы можете посмотреть в этом документе https://docs.microsoft.com/en-us/azure/active-directory/develop/ v2-oauth2-неявный грант поток
Принятие Вас говорит о реальном неуправляемом коде - не только собственном C++, работающем в сборке смешанного режима, скомпилированной со сбросом / - самый легкий путь состоит в том, чтобы создать обертку к Вашему коду.NET в C++ / CLI. Можно затем экспортировать C++ / методы CLI, просто отметив их с __ declspec (dllexport).
, С другой стороны, если Вы управляете вызовом неуправляемого кода, можно упорядочить указатели функции к методам.NET и передать их неуправляемому коду.
Вашим кодом вызова является C++ с включенным сбросом/.Правильно?
, Если да, то можно просто использовать оператор использования для использования.NET dll в коде. Что-то как:
#using <Mydll.dll>
и затем можно просто сделать объекты управляемых классов как:
MyNameSpace::MyClass^ obj = new MyNameSpace::MyClass();
, Если Вы хотите сделать этот obj элементом данных Вашего класса, использование gcroot является способом пойти.
Я полагаю, что Вы ищете Обратный PInvoke. Если Вы погуглите для реверса pinvoke, то Вы получите много полезных записей. Я думаю, что следующее имеет хороший быстрый и грязный пример.
Смотрите на класс GCHandle и gcroot ключевое слово, которое обеспечивает безопасную с точки зрения типов, шаблонную обертку вокруг GCHandle.
можно использовать их для содержания ссылки на объект CLR (или помещенное в коробку значение) в собственном коде.
MSDN имеет основное учебное руководство здесь .