Итак, у меня есть приложение Angular и C # Web API 2, в котором для входа используется аутентификация Microsoft (msal.js). Теперь я пытаюсь сохранить данные, и мне нужны данные о текущем зарегистрированном пользователе. Есть ли способ получить зарегистрированного пользователя из контроллера C #?
Я могу сделать это в Angular, но я думаю, что это небезопасно делать это со стороны клиента, поэтому я подумал, может быть, есть способ, которым серверная часть знает, кто зарегистрированный пользователь.
Заранее спасибо!
ИЗМЕНИТЬ
Startup.Auth.cs
var tvps = new TokenValidationParameters
{
ValidAudience = "the id given from Microsoft Graph Registration", //xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ValidateIssuer = false,
};
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
AccessTokenFormat = new Microsoft.Owin.Security.Jwt.JwtFormat(tvps, new OpenIdConnectCachingSecurityTokenProvider("https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration"))
});
frontend-login.ts
let userAgentApp = new UserAgentApplication(clientId, null,
(errorDes: any, token: any, error: any, tokenType: any) => {
userAgentApp.acquireTokenSilent(["user.read"]).then((token: string) => {});
}, { redirectUri: 'http://localhost:port/signin-microsoft' });
userAgentApp.loginPopup(["user.read"]).then((token: string) => {
//store the token and redirect to home page
});
ИЗМЕНИТЬ
Я использую его при доступе к API следующим образом:
this.headers.append('Authorization', 'Bearer ' + sessionStorage.getItem('token'));
this.http.get(`${this.url}`, { headers: this.headers })
.map((response: Response) => { return response.json() })
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ
Я разместил еще один вопрос по этому поводу, и там был дан ответ на эту проблему. Я размещаю ссылку ниже на случай, если она кому-то понадобится в будущем:
C # Web API 2 и Angular - Аутентификация учетной записи Microsoft
var user = User.Identity
- person Inept Adept   schedule 08.02.2018//store the token and redirect to home page
предполагает, что вы где-то храните токен для дальнейшего использования. Можете ли вы опубликовать код, показывающий, как вы используете сохраненный токен при обращении к своему веб-API позже? - person Tewr   schedule 14.02.2018