Как получить текущего пользователя в post-запросе .net core web api?

#angular #azure-active-directory #msal #webapi #.net-core-3.1

#angular #azure-active-directory #msal #webapi #.net-core-3.1

Вопрос:

Я работаю над проектом angular, который использует http и web api (.net core 3.1) для подключения к базе данных, которая зарегистрирована и развернута в Azure, и я предоставил доступ только одному пользователю, который в настоящее время находится в Azure active Directory, и в запросе post я хочу получить этого текущего пользователя, который сохраняет /редактирование записи. Я пытался использовать MSAL, но sessonstorage.getitem() пуст. и я новичок в MSAL, поэтому, пожалуйста, расскажите мне, как это работает, и я был бы признателен, если кто-нибудь пошагово объяснит, как использовать MSAL и получить текущего пользователя. не могли бы вы помочь мне с этим? Заранее спасибо!!

Примечание. Если есть другой способ получить текущего пользователя (не с помощью аутентификации Windows), который предоставил доступ к Azure active Directory в .net core 3.1, пожалуйста, скажите мне..

Ответ №1:

Вы могли бы попробовать это руководство, используя MSAL. myMSALObj.getAccount() После входа в систему отображается приветственное сообщение.

 const myMSALObj = new Msal.UserAgentApplication(msalConfig);

function signIn() {
  myMSALObj.loginPopup(loginRequest)
    .then(loginResponse => {
      console.log('id_token acquired at: '   new Date().toString());
      console.log(loginResponse);

      if (myMSALObj.getAccount()) {
        showWelcomeMessage(myMSALObj.getAccount());
      }
    }).catch(error => {
      console.log(error);
    });
}

function showWelcomeMessage(account) {

    // Reconfiguring DOM elements
    cardDiv.classList.remove('d-none');
    welcomeDiv.innerHTML = `Welcome ${account.name}`;
    signInButton.classList.add('d-none');
    signOutButton.classList.remove('d-none');
}