Параметры чтения содержимого файла из документа Word с ограничительным уровнем конфиденциальности, например «КонфиденциаC#

Место общения программистов C#
Ответить
Anonymous
 Параметры чтения содержимого файла из документа Word с ограничительным уровнем конфиденциальности, например «Конфиденциа

Сообщение Anonymous »

Мне нужны некоторые параметры для чтения содержимого файла из документа Word с ограничительным уровнем конфиденциальности, например «Конфиденциально» и «Строго конфиденциально». и т. д. с использованием MIP (Microsoft Information Protection) SDK.
Документ Word в настоящее время находится на моем рабочем столе (локальном компьютере). Ниже приведен пример кода, в котором я использую комбинацию регистрации приложения и своей рабочей учетной записи электронной почты, чтобы получить engineSettings в MIP.
Я создал регистрацию приложения и предоставил для нее разрешения API user_impersonation и UnifiedPolicy.User.Read.
Чего мне не хватает, чтобы иметь возможность читать содержимое файла с помощью OBO?

Код: Выделить всё

    // From App Registration → Overview
private const string clientId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";  // Application (client) ID
private const string tenantId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";  // Directory (tenant) ID

public static void GetFileSensitityLevels(string localFilePath, ILogger log)
{
MIP.Initialize(MipComponent.File);

ApplicationInfo appInfo = new ApplicationInfo()
{
ApplicationId = clientId,  // REQUIRED - identifies your app to Microsoft
ApplicationName = "MY-APP-REGISTRATION-NAME",
ApplicationVersion = "1.0.0"
};

// Auth delegate acquires tokens from Microsoft Entra ID
var authDelegate = new DefaultAzureCredentialAuthDelegate(tenantId);

MipConfiguration mipConfig = new MipConfiguration(appInfo, "mip_data", Microsoft.InformationProtection.LogLevel.Trace, false);
MipContext mipContext = MIP.CreateMipContext(mipConfig);

var profileSettings = new FileProfileSettings(
mipContext,
CacheStorageType.OnDiskEncrypted,
new ConsentDelegateImpl());

var fileProfile = Task.Run(async () =>
await MIP.LoadFileProfileAsync(profileSettings)).Result;

// User identity - the user whose permissions are used
string userEmail = "abcdef@mytenant.com";

var engineSettings = new FileEngineSettings(userEmail, authDelegate, "", "en-US");
engineSettings.Identity = new Identity(userEmail);

var fileEngine = Task.Run(async () =>
await fileProfile.AddEngineAsync(engineSettings)).Result;

var handler = Task.Run(async () =>
await fileEngine.CreateFileHandlerAsync(localFilePath, localFilePath, true)).Result;

var label = handler.Label;
if (label != null)
{
Console.WriteLine($"Label: {label.Label.Name}");
Console.WriteLine($"ID: {label.Label.Id}");
}

// Cleanup
handler = null;
fileEngine = null;
fileProfile = null;
mipContext.ShutDown();
}
}

public class DefaultAzureCredentialAuthDelegate : IAuthDelegate
{
private readonly string _tenantId;
private readonly DefaultAzureCredential _credential;

public DefaultAzureCredentialAuthDelegate(string tenantId)
{
_tenantId = tenantId;
_credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
TenantId = tenantId
});
}

public string AcquireToken(Identity identity, string authority, string resource, string claims)
{
// MIP SDK calls this when it needs to authenticate to Microsoft services
string scope = resource.EndsWith("/") ? $"{resource}.default" : $"{resource}/.default";
var token = _credential.GetToken(new TokenRequestContext(new[] { scope }));
return token.Token;
}
}

public class ConsentDelegateImpl : IConsentDelegate
{
public Consent GetUserConsent(string url) => Consent.Accept;
}



Подробнее здесь: https://stackoverflow.com/questions/798 ... sitivity-l
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»