Hızlı Başlangıç: MIP SDK'sı kullanarak metin şifreleme/şifre çözme (C#)
Bu Hızlı Başlangıçta, MIP Koruması SDK'larının daha fazlasını nasıl kullanacağınız gösterilmektedir. Önceki Hızlı Başlangıçta listelediğiniz koruma şablonlarından birini kullanarak Geçici metni şifrelemek için bir Koruma işleyicisi kullanırsınız. Koruma işleyicisi sınıfı, korumayı uygulamak/kaldırmak için çeşitli işlemleri kullanıma sunar.
Ön koşullar
Henüz yapmadıysanız devam etmeden önce aşağıdaki önkoşulları tamamladığınızdan emin olun:
- Tam Hızlı Başlangıç: Kimliği doğrulanmış kullanıcının kullanabileceği koruma şablonlarını listelemek için ilk olarak bir başlangıç Visual Studio çözümü oluşturan koruma şablonlarını (C#) listeleyin. Bu "Şifreleme/Şifre Çözme metni" Hızlı Başlangıcı öncekini temel alır.
- İsteğe bağlı olarak: MIP SDK kavramlarındaki Koruma işleyicilerini gözden geçirin.
Koruma şablonu ayarlamak ve almak için mantık ekleme
Koruma altyapısı nesnesini kullanarak geçici metni şifrelemek için mantık ekleyin.
Çözüm Gezgini kullanarak projenizde Main()' yönteminin uygulamasını içeren .cs dosyasını açın. Varsayılan olarak, proje oluşturma sırasında belirttiğiniz, onu içeren projeyle aynı ada sahiptir.
Önceki Hızlı Başlangıçta kaldığınız gövdenin sonuna
Main()
doğru aşağıdaki kodu ekleyin://Set text to encrypt and template ID string inputText = "<Sample-text>"; string templateId = "<template-id>"; //Create a template based publishing descriptor ProtectionDescriptor protectionDescriptor = new ProtectionDescriptor(templateId); //Create publishing settings using protection descriptor PublishingSettings publishingSettings = new PublishingSettings(protectionDescriptor); //Generate Protection Handler for publishing var publishingHandler = Task.Run(async() => await protectionEngine.CreateProtectionHandlerForPublishingAsync(publishingSettings)).Result; //Encrypt text using Publishing handler long bufferSize = publishingHandler.GetProtectedContentLength(inputText.Length, true); byte[] inputTextBuffer = Encoding.ASCII.GetBytes(inputText); byte[] encryptedTextBuffer = new byte[bufferSize]; publishingHandler.EncryptBuffer(0, inputTextBuffer, encryptedTextBuffer, true); Console.WriteLine("Original text: {0}", inputText); Console.WriteLine("Encrypted text: {0}", Encoding.UTF8.GetString(encryptedTextBuffer)); //Create a Protection handler for consumption using the same publishing licence var serializedPublishingLicense = publishingHandler.GetSerializedPublishingLicense(); PublishingLicenseInfo plInfo = PublishingLicenseInfo.GetPublishingLicenseInfo(serializedPublishingLicense); ConsumptionSettings consumptionSettings = new ConsumptionSettings(plInfo); var consumptionHandler = protectionEngine.CreateProtectionHandlerForConsumption(consumptionSettings); //Use the handler to decrypt the encrypted text long buffersize = encryptedTextBuffer.Length; byte[] decryptedBuffer = new byte[bufferSize]; var bytesDecrypted = consumptionHandler.DecryptBuffer(0, encryptedTextBuffer, decryptedBuffer, true); byte[] OutputBuffer = new byte[bytesDecrypted]; for (int i = 0; i < bytesDecrypted; i++){ OutputBuffer[i] = decryptedBuffer[i]; } Console.WriteLine("Decrypted content: {0}", Encoding.UTF8.GetString(OutputBuffer)); Console.WriteLine("Press a key to quit."); Console.ReadKey();
Main()
İlk hızlı başlangıçta oluşturulan uygulama kapatma bloğunu bulun ve işleyici satırlarını ekleyin:// Application Shutdown publishingHandler = null; consumptionHandler = null; protectionEngine = null; protectionProfile = null; mipContext = null;
Aşağıdaki değerleri kullanarak kaynak koddaki yer tutucu değerlerini değiştirin:
Yer tutucu Değer <örnek metin> Şifrelemek istediğiniz örnek metin, örneğin: My secure text
.<template-id> Önceki Hızlı Başlangıç'ta konsol çıkışından kopyalanan bir şablon kimliği, örneğin: bb7ed207-046a-4caf-9826-647cff56b990
.
Uygulamayı derleme ve test etme
İstemci uygulamanızı derleyin ve test edin.
İstemci uygulamanızı derlemek için CTRL-SHIFT-B (Çözüm Derleme) kullanın. Derleme hatanız yoksa, uygulamanızı çalıştırmak için F5 (Hata ayıklamayı başlat) kullanın.
Projeniz başarıyla derlenip çalıştırılırsa, SDK yönteminizi
AcquireToken()
her çağırdığında uygulama ADAL aracılığıyla kimlik doğrulaması isteyebilir. Önbelleğe alınmış kimlik bilgileri zaten varsa, oturum açmanız ve etiket listesini ve ardından uygulanan etiket ve değiştirilen dosyadaki bilgileri görmeniz istenmez.
Original content: My secure text
Encrypted content: c?_hp???Q??+<?
Decrypted content: My secure text
Press a key to quit.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin