Получение дескриптора, который начинается с S-1-9.
Нет прямого api для получения этого дескриптора, который начинается с S-1-9. Вам необходимо использовать следующие api, чтобы получить user descriptor(SID)
во-первых:
GET https://vssps.dev.azure.com/{org name}/_apis/graph/users?api-version=5.1-preview.1
У меня есть один ответ о том, как получить его из тела ответа, пожалуйста, обратитесь к этот ответ для получения более подробной информации. .
Теперь полученный нами дескриптор основан на base64
. Чтобы добиться того, что вы хотите, просто расшифруйте этот SID.
Здесь есть блог, написанный нашим инженером Azure Identity Team: Сценарий декодирования C # . Просто расположен в соответствующей части для достижения этого сценария декодирования:
public static string Base64Decode(string base64EncodedData)
{
var lengthMod4 = base64EncodedData.Length % 4;
if (lengthMod4 != 0)
{
//fix Invalid length for a Base-64 char array or string
base64EncodedData += new string('=', 4 - lengthMod4);
}
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
public static string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}