Вы можете расшифровать токен доступа, возвращенный из потока кода авторизации, напрямую, используя IDataProtector
.мы реализуем интерфейс IDataProtector
и используем System.Web.Security.MachineKey.Unprotect method
.Сделать вспомогательный метод для расшифровки билета OWIN
private class MachineKeyProtector : IDataProtector
{
private readonly string[] _purpose =
{
typeof(OAuthAuthorizationServerMiddleware).Namespace,
"Access_Token",
"v1"
};
public byte[] Protect(byte[] userData)
{
//throw new NotImplementedException();
}
public byte[] Unprotect(byte[] protectedData)
{
return System.Web.Security.MachineKey.Unprotect(protectedData, _purpose);
}
}
Чтобы получить ClaimsIdentity и словарь свойств.мы просто создаем экземпляр и передаем токен, чтобы получить дешифрованный билет
var secureDataFormat = new TicketDataFormat(new MachineKeyProtector());
AuthenticationTicket ticket = secureDataFormat.Unprotect(accessToken);
Выше AuthenticationTicket сам содержит ClaimsIdentity и словарь свойств.см. Интерфейс IDataProtector