Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, ms-screenclip: URI (Tekdüzen Kaynak Tanımlayıcısı) şemasını kullanarak birinci ve üçüncü taraf uygulamaları Windows Ekran Alıntısı Aracı ile tümleştirme protokolünü belirtir. Protokol, Ekran Alıntısı Aracı aracılığıyla görüntü ve video (ses ile) yakalamayı destekler ve uygulama arayanlar, uygulamalarının görüntüleneceği Ekran Alıntısı Aracı özelliklerini seçebilir.
Important
Bu protokol için paketlenmiş Windows uygulaması (MSIX) gerekir. Uygulamanız paketlendiğinde, işletim sistemi uygulamanızın kimliğini Ekran Alıntısı Aracı'na otomatik olarak sağlar ve bu da yakalama yanıtını uygulamanıza güvenli bir şekilde yönlendirmek için bunu kullanır. Paketlenmemiş (Win32) arayanlar redirect-uri üzerinden yanıt alamaz. Paketlenmemiş bir uygulama bir redirect-uri sağlarsa, Ekran Alıntısı Aracı yanıtı sağlamaz ve yakalama arabirimini göstermeden çıkabilir.
Note
Bu protokol, artık kullanım dışı olan Ekran alıntısını başlatma (Kullanım dışı) bölümünde belgelenen deneyimin yerini alır.
Desteklenen özellikler
Ekran Alıntısı Aracı protokolü aşağıdaki özellikleri destekler:
- Dikdörtgen Ekran Görüntüsü
- Serbest Biçimli Yakalama
- Pencere Yakalama
- Ekran Kaydı
- Kullanılabilir yakalama modlarını özelleştirme
- Otomatik kaydetme (isteğe bağlı)
Protokol belirtimi
URI Biçimi:ms-screenclip://{host}/{path}?{query parameters}
| Bileşen | Description | Değerler |
|---|---|---|
| Düzeni | Ekran Alıntısı Aracı için özel şema | ms-screenclip |
| Host | Ekran Alıntısı Aracı ile gerçekleştirilecek işlem |
capture veya discover |
| Path | Yakalanacak ortam türü (yalnızca capture sunucu için geçerlidir; discover sunucunun yolu yoktur) |
/image veya /video |
| Sorgu | İşlemin parametreleri | Aşağıdaki tablolara bakın |
Note
Yollar ve sorgu parametresi adları büyük/küçük harfe duyarlı değildir. Örneğin, ms-screenclip://capture/Image?Redirect-Uri=my-app://response ile ms-screenclip://capture/image?redirect-uri=my-app://responseaynı şekilde davranır.
Ana bilgisayar yakalama
Snipping Tool'un capture yakalama katmanını başlatmak için ana bilgisayarı kullanın.
Yol
| Yol | Description |
|---|---|
/image |
Görüntü yakalamayı başlatır (ekran görüntüsü). Bir mod parametresi gerektirir. |
/video |
Video yakalamayı (ekran kaydı) başlatır. Her zaman dikdörtgen modunu kullanır. |
Mod parametreleri (yakalama/görüntü)
Yol için /image tam olarak bir mod parametresi belirtmeniz gerekir. Mod parametreleri, değer içermeyen çıplak sorgu parametreleridir.
| Parametre | Description |
|---|---|
rectangle |
Etkileşimli dikdörtgen yakalama modu. |
freeform |
Etkileşimli serbest biçimli yakalama modu. |
window |
Etkileşimli pencere yakalama modu. |
Important
Mod parametreleri bir değer olmadan belirtilmelidir. Örneğin, &rectangle kullanmayın&rectangle=value. Bir değer sağlanması hata yanıtına neden olur.
için /image, tam olarak bir mod parametresi belirtmeniz gerekir. Sıfır veya birden fazla mod belirtilmesi hata 400 Bad Request yanıtına neden olur.
/video için herhangi bir mod parametresi göz ardı edilir.
Sorgu parametreleri (yakalama)
Note
Sorgu parametreleri herhangi bir sırada sağlanabilir.
| Parametre | Türü | Zorunlu | Description | Varsayılan |
|---|---|---|---|---|
redirect-uri |
URI | Yes | Ekran Alıntısı Aracı'nın yakalama yanıtını gönderdiği geri çağırma URI'sini seçin. Uygulamanızın bu URI düzeni için bir protokol işleyicisi kaydetmesi gerekir. Atlanırsa Ekran Alıntısı Aracı yakalama kullanıcı arabirimini görüntülemez ve yanıt döndürmez. | Yok |
user-agent |
String | Hayır (kesinlikle önerilir) | Günlüğe kaydetme ve analiz için kullanılan arama uygulamasının tanımlayıcısı. Gerekli desteği kanallar üzerinden alarak sorunları teşhis edin; bunu yapmamak kendi riskinizi doğurur. | Yok |
api-version |
String | Hayı | Kullanılacak protokol sürümü, örneğin "1.2". Belirtilmezse, istek sürümü 1.2olarak işlenir. |
1.2 |
x-request-correlation-id |
String | Hayı | İsteğin benzersiz tanımlayıcısı, belirli bir işleme veya olay zincirine başvuruya izin verir. | Otomatik oluşturulan GUID |
enabledModes |
dize (liste) | Hayı | Kullanıcı arabiriminde hangi yakalama modlarının kullanılabilir olduğunu denetler. Aşağıdaki EnabledModes bölümüne bakın. | Yalnızca URI'de belirtilen mod |
auto-save |
flag | Hayı | Bulunduğunda, yakalanan ekran görüntüsü veya kayıt otomatik olarak kullanıcının cihazına kaydedilir. | Yok (otomatik kaydetme yok) |
Note
api-version Varsayılan değeri1.2, daha yeni protokol sürümleri yayınlandığında değişmez. Atlanmış api-version talepler her zaman 1.2 olarak işlenir. Sonraki bir sürüme eklenen özellikleri kullanmak için bu sürüme ayarlayın api-version . Uygulamanızın api-version örtük varsayılan yerine bilinen bir protokol sürümüne bağlı kalması için her istekte açıkça belirtmenizi öneririz.
Note
sağladığınızdaapi-version, yanıtın /discover dizisindeki supportedVersions değerlerden biriyle (şu anda 1.0, 1.1ve 1.2) tam olarak eşleşmelidir. Diğer tüm değerler — 1.15 gibi ara değerler ve 1.0abc gibi yanlış biçimlendirilmiş değerler de dahil — bir 400 Bad Request yanıtı döner. Belirli bir Ekran Alıntısı Aracı derlemesinin kabul ettiği sürüm kümesini bulmak için discover host'u çağırın.
Note
auto-save bayrağı, kullanıcının Ekran Alıntısı Aracı ayarlarına saygı gösterir. Kullanıcı Ekran Alıntısı Aracı'nda otomatik kaydetmeyi devre dışı bırakmışsa, isteğiniz auto-save içerdiğinde bile yakalama cihazda kaydedilmez.
Sunucuyu keşfet
Ekran Alıntısı Aracı'nın discover desteklenen özelliklerini, modlarını ve protokol sürümünü çalışma zamanında sorgulamak için sunucuyu kullanın. Bu, yakalama isteği yapmadan önce uyumluluğu denetlemek için kullanışlıdır.
Sorgu parametreleri (keşfetme)
| Parametre | Türü | Zorunlu | Description | Varsayılan |
|---|---|---|---|---|
redirect-uri |
URI | Yes | Ekran Alıntısı Aracı'nın yetenek yanıtını gönderdiği geri çağırma URI'si. Uygulamanızın bu URI düzeni için bir protokol işleyicisi kaydetmesi gerekir. Atlanırsa Ekran Alıntısı Aracı yanıt döndürmez. | Yok |
user-agent |
String | Hayır (kesinlikle önerilir) | Analiz ve kaydetme için kullanılan çağrı yapan uygulamanın tanımlayıcısı. | Yok |
x-request-correlation-id |
String | Hayı | İstek için benzersiz tanımlayıcı. | Otomatik oluşturulan GUID |
Örnek bulma
ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response
Yanıt biçimini bulma
Yanıt, yeniden yönlendirme URI'sine sorgu parametresi olarak discover eklenen bir JSON nesnesidir. Şunları içerir:
-
version: Ekran Alıntısı Aracı derlemesi tarafından desteklenen en son protokol sürümü. -
defaultVersion: Bir istekapi-version'i atlarsa protokol sürümü varsayılır. Sabitlenmemiş isteklerinizin nasıl yorumlandığı hakkında bilgi edinmek için bunu okuyun. -
supportedVersions: Bu Ekran Alıntısı Aracı derlemesi tarafından kabul edilen protokol sürümleri dizisi. -
capabilities: Desteklenen yakalama işlemlerinin dizisi, her biri şu şekildedir:-
path: Yakalama uç noktası (örneğin,capture/image,capture/video). -
methods: Desteklenen HTTP benzeri yöntemler. -
parameters: Uç nokta için kullanılabilir parametreler. -
description: Özelliğin açıklaması.
-
{
"version": 1.2,
"defaultVersion": 1.2,
"supportedVersions": [1.0, 1.1, 1.2],
"capabilities": [
{
"path": "capture/image",
"methods": ["GET"],
"parameters": ["rectangle", "freeform", "window"],
"description": "Captures an image with options for shape."
},
{
"path": "capture/video",
"methods": ["GET"],
"parameters": [],
"description": "Captures a video in a defined area."
}
]
}
Etkin Modlar
parametresi, enabledModes Ekran Alıntısı Aracı kullanıcı arabiriminde hangi yakalama modlarının kullanılabilir olduğunu denetlemenize olanak tanır. Kullanıcının seçimlerini uygulamanızın gereksinimlerine uyacak şekilde kısıtlamak veya genişletmek için kullanın.
Desteklenen modlar
| Mode | Description |
|---|---|
RectangleSnip |
Dikdörtgen yakalama modu. |
WindowSnip |
Pencere yakalama modu. |
FreeformSnip |
Serbest biçimli yakalama modu. |
FullscreenSnip |
Tam ekran yakalama modu. |
SnippingAllModes |
Tüm görüntü yakalama modları: RectangleSnip, WindowSnip, FreeformSnip, FullscreenSnip. |
RectangleRecord |
Dikdörtgen kayıt modu. |
RecordAllModes |
Tüm kayıt modları: şu anda yalnızca RectangleRecord. |
All |
Desteklenen tüm modlar: SnippingAllModes ile RecordAllModes birleşimi. |
Tavsiye
All, SnippingAllModesve RecordAllModes toplam değerlerdir. İçerdikleri modlar Ekran Alıntısı Aracı sürümleri arasında değişebilir. Bu değerlerden birini kullanan bir uygulama, gelecek sürümlerde eklenen modları otomatik olarak alır. Kullanılabilir mod kümesini güncelleştirmeler arasında sabit tutmak için belirli modları açıkça listeleyin (örneğin, RectangleSnip,FreeformSnip).
Important
-
/imageiçin,rectanglebelirtildiğinde bile, URI'de bir mod parametresi (örneğin,freeform,window, )enabledModes. mode parametresi başlangıçta seçilen modu belirler. - URI'de belirtilen mod,
enabledModesiçinde listelenmese bile kullanıcı arabiriminde her zaman kullanılabilir. Örneğin,?freeform&enabledModes=RectangleSniphem URI'den serbest biçimli hem de dikdörtgen biçimli ekran alıntısını kullanılabilir hale getirir ve serbest biçimli önceden seçilmiştir. - Atlanırsa
enabledModes, kullanıcı arabiriminde yalnızca URI'de belirtilen mod kullanılabilir. -
/imageiçin, hiçbir mod parametresi belirtilmezse istek geçersizdir veenabledModesbağlı olmaksızın bir hatayla sonuçlanır.
EnabledModes örnekleri
Yalnızca dikdörtgen ekran alıntısını etkinleştir:
ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip&user-agent=MyApp&redirect-uri=my-app://response
Dikdörtgen ve pencere kesimini etkinleştir:
ms-screenclip://capture/image?rectangle&enabledModes=RectangleSnip,WindowSnip&user-agent=MyApp&redirect-uri=my-app://response
Tüm ekran alıntısı modlarını etkinleştirin:
ms-screenclip://capture/image?rectangle&enabledModes=SnippingAllModes&user-agent=MyApp&redirect-uri=my-app://response
Yalnızca kayıt modunu etkinleştir:
ms-screenclip://capture/video?enabledModes=RecordAllModes&user-agent=MyApp&redirect-uri=my-app://response
Birden çok ekran alıntısı ve kayıt modunu etkinleştirin:
ms-screenclip://capture/image?freeform&enabledModes=RectangleSnip,RectangleRecord&user-agent=MyApp&redirect-uri=my-app://response
Serbest biçim URI'de belirtildiğinden, önceden seçilir. Kullanıcılar serbest biçimli, dikdörtgen ekran alıntısı ve dikdörtgen kaydı arasında geçiş yapabilir.
Responses
Kullanıcı bir yakalamayı tamamladıktan veya iptal ettikten sonra Ekran Alıntısı Aracı aracılığıyla redirect-uri uygulamanıza bir yanıt gönderir. Yanıt, yeniden yönlendirme URI'nize eklenen URI sorgu parametreleri olarak yapılandırılır.
Sorgu parametreleriniz redirect-uri zaten içeriyorsa (örneğin, my-app://response?sessionId=abc), bu parametreler korunur ve yanıt parametreleri ile &eklenir. Bunu, geri çağırma aracılığıyla arayana özgü gidiş dönüş durumu için kullanabilirsiniz; değer sessionId=abc yanıt URI'sinde , code, reasonve (başarılı bir yakalama için) x-request-correlation-idile file-access-tokenbirlikte geri yansıtılır.
Yanıt parametreleri
| Parametre | Türü | Hediye | Description |
|---|---|---|---|
code |
int | Always | Sonucu gösteren HTTP stili durum kodu. |
reason |
String | Always | Sonucun insan tarafından okunabilen açıklaması. |
x-request-correlation-id |
String | Always | Özgün istekten olan ilişkilendirme kimliği (veya otomatik oluşturulan bir kimlik). |
file-access-token |
String | Yalnızca başarı |
SharedStorageAccessManager Yakalanan medyayı temsil eden bir belirteç. Dosyayı almak için bunu kullanın. |
discover |
String | Yalnızca keşfet | Yetenek yanıtını içeren URL ile kodlanmış JSON. |
Durum kodları
| Kod | Reason | Description |
|---|---|---|
| 200 | Success | Yakalama başarıyla tamamlandı. A file-access-token yanıta dahil edilir. |
| 400 | Hatalı İstek - Geçersiz veya Eksik Parametreler | İstek işlenemedi. Tüm gerekli parametrelerin mevcut ve geçerli olup olmadığını denetleyin. |
| 408 | İstem Zaman Aşımı - İşlem Çok Uzun Sürdü | İşlem tamamlanmadan önce zaman aşımına uğradı. |
| 499 | İstemci Kapalı İsteği - Kullanıcı Ekran Alıntısını İptal Etti | Kullanıcı Escape tuşuna basarak veya uzağa tıklayarak yakalamayı iptal etti. Yalnızca /image ve /video için geçerlidir. |
| 500 | İç Sunucu Hatası - İşleme Başarısız Oldu | Yakalama sırasında beklenmeyen bir hata oluştu. |
Örnek yanıtlar
Başarılı yakalama:
my-app://response?code=200&reason=Success&x-request-correlation-id=aaaa0000-bb11-2222-33cc-444444dddddd&file-access-token=cccc2222-dd33-4444-55ee-666666ffffff
Kullanıcı iptal edildi:
my-app://response?code=499&reason=Client%20Closed%20Request%20-%20User%20Cancelled%20the%20Snip&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee
Geçersiz istek (eksik mod parametresi):
my-app://response?code=400&reason=Bad%20Request%20-%20Invalid%20or%20Missing%20Parameters&x-request-correlation-id=bbbb1111-cc22-3333-44dd-555555eeeeee
Tam URI örnekleri
| Kullanım Örneği | URI | Description |
|---|---|---|
| Dikdörtgen ekran görüntüsü | ms-screenclip://capture/image?rectangle&user-agent=MyApp&redirect-uri=my-app://response |
Etkileşimli dikdörtgen yakalama. Sonuç çağırana döndürüldü. |
| Serbest biçimli ekran görüntüsü | ms-screenclip://capture/image?freeform&user-agent=MyApp&redirect-uri=my-app://response |
Etkileşimli serbest biçimli kaydetme. Sonuç çağrıyı başlatana döndürüldü. |
| Pencere ekran görüntüsü | ms-screenclip://capture/image?window&user-agent=MyApp&redirect-uri=my-app://response |
Etkileşimli pencere yakalama. Sonuç çağırana döndürüldü. |
| Ekran kaydı | ms-screenclip://capture/video?user-agent=MyApp&redirect-uri=my-app://response |
Etkileşimli ekran kaydı. Sonuç çağırana döndürüldü. |
| Özellikleri keşfetme | ms-screenclip://discover?user-agent=MyApp&redirect-uri=my-app://response |
Desteklenen özellikleri sorgulayın. Çağırana döndürülen JSON özellikleri. |
| Otomatik kaydetme özelliğine sahip dikdörtgen | ms-screenclip://capture/image?rectangle&auto-save&user-agent=MyApp&redirect-uri=my-app://response |
Dikdörtgen yakalama otomatik kaydetme etkin. |
| Tüm modlara sahip dikdörtgen | ms-screenclip://capture/image?rectangle&enabledModes=All&user-agent=MyApp&redirect-uri=my-app://response |
Önceden seçilmiş dikdörtgen yakalama, kullanıcı arabiriminde tüm modlar kullanılabilir. |
Uygulamanızdan başlatma
Paketlenmiş uygulamanızdan Ekran Alıntısı Aracı'nı başlatmak için Launcher.LaunchUriAsync kullanmalısınız. Diğer başlatma yöntemleri (örneğin Process.Start veya kabuk yürütme gibi) uygulamanızın kimliğini sağlamaz ve Ekran Alıntısı Aracı bir yanıt iletmez.
1. Adım: Protokol işleyicisini kaydetme
Uygulamanızın geri çağırma yanıtını alabilmesi için özel Package.appxmanifest bir protokol kaydedin. Protokol adı, içinde redirect-urikullanılan şemayla eşleşmelidir.
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="my-app" DesiredView="default">
<uap:DisplayName>My App Protocol</uap:DisplayName>
</uap:Protocol>
</uap:Extension>
</Extensions>
Protokol etkinleştirmelerini kaydetme ve işleme hakkında daha fazla bilgi için bkz. URI etkinleştirmesini işleme.
2. Adım: Ekran Alıntısı Aracı'nı başlatma
// Capture a screenshot in rectangle mode
var uri = new Uri(
"ms-screenclip://capture/image"
+ "?rectangle"
+ "&user-agent=MyApp"
+ "&redirect-uri=my-app://capture-response"
+ "&x-request-correlation-id=" + Guid.NewGuid().ToString()
);
await Launcher.LaunchUriAsync(uri);
// Record a video
var uri = new Uri(
"ms-screenclip://capture/video"
+ "?user-agent=MyApp"
+ "&redirect-uri=my-app://capture-response"
);
await Launcher.LaunchUriAsync(uri);
// Discover capabilities (returns immediately, no capture UI)
var uri = new Uri(
"ms-screenclip://discover"
+ "?user-agent=MyApp"
+ "&redirect-uri=my-app://discover-response"
);
await Launcher.LaunchUriAsync(uri);
3. Adım: Yanıtı işleme
Yakalama tamamlandığında (veya kullanıcı iptal ettiğinde), Ekran Alıntısı Aracı, sonuç parametrelerini sorgu dizeleri olarak ekleyerek redirect-uri aracılığıyla uygulamanızı etkinleştirir. Entegrasyonların çoğu, yanıt geldiğinde zaten çalışıyor — arayan, Ekran Alıntısı Aracı'nı başlattı ve geri çağırmayı bekledi — bu yüzden uygulamanızın hem soğuk başlatmayı (uygulama çalışmıyordu) hem de sıcak yeniden etkinleştirmeyi (uygulama zaten çalışıyor) işleyebilmesi gerekir.
App.xaml.cs içindeki her iki yola da kaydolun.
Yakalama yanıtını işleme (görüntü veya video):
// In App.xaml.cs: handle protocol activation for both cold-start and warm re-activation
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
// Cold-start path: the app was launched by Snipping Tool's callback.
var activatedArgs = Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().GetActivatedEventArgs();
if (activatedArgs.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol)
{
if (activatedArgs.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
{
_ = HandleProtocolActivationAsync(protocolArgs.Uri);
}
}
// Warm re-activation path: the app is already running when the callback arrives.
Microsoft.Windows.AppLifecycle.AppInstance.GetCurrent().Activated += (sender, e) =>
{
if (e.Kind == Microsoft.Windows.AppLifecycle.ExtendedActivationKind.Protocol &&
e.Data is Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs protocolArgs)
{
_ = HandleProtocolActivationAsync(protocolArgs.Uri);
}
};
}
private async Task HandleProtocolActivationAsync(Uri uri)
{
var query = new WwwFormUrlDecoder(uri.Query);
var code = query.GetFirstValueByName("code");
var reason = query.GetFirstValueByName("reason");
if (code == "200")
{
var token = query.GetFirstValueByName("file-access-token");
var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);
// Use the captured file (see "Retrieving captured media" below)
}
else
{
// Handle error (400, 408, 499, 500)
Debug.WriteLine($"Snipping Tool returned {code}: {reason}");
}
}
Keşfet yanıtını işle:
private void HandleDiscoverResponse(Uri uri)
{
var query = new WwwFormUrlDecoder(uri.Query);
var code = query.GetFirstValueByName("code");
if (code == "200")
{
var discover = query.GetFirstValueByName("discover");
// discover contains a URL-encoded JSON capabilities payload
var capabilities = Uri.UnescapeDataString(discover);
// Parse the JSON to inspect supported capture modes
}
}
Tavsiye
İstekle bir x-request-correlation-id gönderdiyseniz, yanıtın aynı değeri tekrar ettiğini doğrulayarak yanıtı işlemdeki doğru isteğe eşleştirebildiğinizden emin olun. Ekran Alıntısı Aracı'nın otomatik olarak oluşturmasına izin verirseniz, yanıt oluşturulan değeri taşır; bunu en son uçuş içi isteğinizle eşleşmiş gibi kabul eder.
Belirteci kullanarak yakalanan medyayı geri alma
SharedStorageAccessManager sınıfını kullanarak file-access-token'yi onaylayın ve yakalanan dosyaya erişin.
Token kısıtlamaları:
- Belirteç yalnızca bir kez kullanılabilir. Kullanımdan sonra artık geçerli değildir.
- Belirteç 14 gün sonra geçerliliğini yitirir.
- Bir uygulamada 1000'den fazla etkin belirteç olamaz. Belirteç kullanıldıktan, kaldırıldıktan veya süresi dolduktan sonra kotaya göre sayılmaz.
// Redeem the token and display the captured image
var file = await SharedStorageAccessManager.RedeemTokenForFileAsync(token);
using (var stream = await file.OpenReadAsync())
{
var bitmap = new BitmapImage();
await bitmap.SetSourceAsync(stream);
MyImage.Source = bitmap;
}
// Or copy to your app's local storage
var localFolder = ApplicationData.Current.LocalFolder;
await file.CopyAsync(localFolder, file.Name, NameCollisionOption.GenerateUniqueName);
Güvenlik konuları
Kesme Aracı, tüm redirect-uri değerlerini başlatmadan önce doğrular. Aşağıdaki korumalar uygulanır:
- Paketlenmiş uygulama çağrıları: Uygulamanız paketlenmiş bir Windows uygulaması (MSIX) olduğunda, işletim sistemi yakalama yanıtını güvenli bir şekilde uygulamanıza yönlendirir ve yalnızca uygulamanızın bu yanıtı alabilmesini sağlar. Bu, önerilen tümleştirme yoludur.
- Giriş doğrulaması: Ekran Alıntısı Aracı UNC yolları, baştaki/sondaki boşluk veya denetim karakterleri içeren yeniden yönlendirme URI'lerini reddeder.
-
Parça içermez: URL fragmenti (örneğin,
my-app://response#section) içeren yönlendirme URI'leri reddedilir. Ekran Alıntısı Aracı yanıt parametrelerini sorgu dizesi olarak ekler ve bir parça bunları yutacak. - Öz referanslı koruma: Ekran Alıntısı Aracı'nın özyineleme ile etkinleştirilmesine neden olabilecek yeniden yönlendirme URI'leri engellenir.
Important
Uygulamaları çağırmak için:
- Uygulamanızın yanıtı alabilmesi için yeniden yönlendirme URI'niz için bir protokol işleyicisi kaydedin.
- Yanıtta alınan tüm parametreleri işlemeden önce doğrulayın ve temizleyin.
- Eski
x-request-correlation-idbir yanıtı işlemekten veya eşzamanlı istekleri karıştırmaktan kaçınmak için yanıtın uçuş içi isteğinizle eşleşip eşleşmediğini doğrulayın. Correlation-id karışıklığı önler; belirteç kökenini oluşturmaz; güvenli belirteç yönlendirmesi paketlenmiş uygulama geri çağırma kanalından gelir.
İlgili içerik
Windows developer