Используйте GetTokenAsync с пользовательской аутентификацией - PullRequest
0 голосов
/ 10 октября 2019

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

Я хотел бы использовать его так: HttpContext.GetTokenAsync(MyOAuthAuthenticationDefaults.AuthenticationScheme, "access_token")

Где в моей системе аутентификации я могу присвоить значение моего токена "access_token", чтобы иметь возможность получить его таким образом?

Возвращает ли оно из пользовательского утверждения?

Спасибо

1 Ответ

0 голосов
/ 11 октября 2019

Эти токены будут сохранены в AuthenticationProperties в файле cookie:

var claims = new List<Claim>
{
    new Claim(ClaimTypes.Name, "xxxx"),
    new Claim("FullName", "xxxxx"),
    new Claim(ClaimTypes.Role, "Administrator"),
};

var claimsIdentity = new ClaimsIdentity(
    claims, CookieAuthenticationDefaults.AuthenticationScheme);
var tokens = new List<AuthenticationToken>
{
    new AuthenticationToken {Name = OpenIdConnectParameterNames.AccessToken, Value = "xxxxxxxxxxxxxxx"},
    new AuthenticationToken {Name = OpenIdConnectParameterNames.RefreshToken, Value = "xxxxxxxxxxxxxxxxxx"}
};
var authProperties = new AuthenticationProperties();
authProperties.StoreTokens(tokens);



await HttpContext.SignInAsync(
    CookieAuthenticationDefaults.AuthenticationScheme,
    new ClaimsPrincipal(claimsIdentity),
    authProperties);

и получены:

var access_token =await HttpContext.GetTokenAsync(CookieAuthenticationDefaults.AuthenticationScheme, "access_token");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...