VB.Net winforms uygulamasının ağ üzerinden WMV dosyalarını oynatması gereken bir durum var. Uygulamayı çalıştıran kullanıcı ağ paylaşımına doğrudan erişilemez. Kimliğe bürünme yoluyla, dosyaların var olduğunu görebiliyorum (kimliğe bürünme olmadan, File.Exists ağ paylaşımındaki dosyalar için yanlış döndürür). Daha sonra dosyayı bir Windows Media Player denetimine yüklemeye çalıştığımda, kontrol sadece siyah kalır. Windows Media Player denetimi belleğe yüklendiğinde, .Net tarafından yönetilen iş parçacığından ayrı bir yönetilmeyen iş parçacığı üzerinde çalıştığı sonucuna varmıştım. Bu güvenlik belirtecini yönetilen ileti dizisinden yönetilmeyen iş parçacığına geçirmenin bir yolu var mı? Tamamen eksik bir şey mi duyuyorum?Yönetilmeyen Bir Konuya Yönetilen Bir Konudaki kimliğe bürünme jetonunu Geçme
cevap
Sana ağ paylaşımına giriş yapmak
[DllImport("advapi32.dll", SetLastError=true)]
public static extern int LogonUser(string pszUsername, string pszDomain, string pszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
kullanarak çalıştı varsayalım.
Tecrübemde konuyla ilgilenmiyor.
Yararlı olabileceğini düşünüyorsanız, size bir kullanım örneği gösterebilirim. Burada bahsetmek için uzun bir atış.
WMP'nin işlem belirteçinizden miras alan kendi iş parçacıklarını başlatması çok iyi bir olasılıktır, bu varsayılan :: CreateThread() davranışıdır. Bir iş parçacığı belirtecini dışarıdan değiştirmek mümkün olmadığından ve kontrolün bir belirteci parametre olarak kabul etmediği sürece yapabileceğiniz pek bir şey olmadığından eminim.
Başka bir işlemin içine koymanın dışında bir cevabın olduğundan emin değilim ve bu işlemi, oluşturduğunuz ya da dosyayı bir yere yerel olarak arabelleğe aldığınızı belirten :: CreateProcessAsUser() yöntemini kullanarak oluşturun.
AppDomain
kapalı SetThreadPrincipal
yöntemini kullanmayı denediniz mi?
Örnek: öncül doğru olup olmadığını WMV, yönetilmeyen çalıştırmak gibi görünüyor, sorunuzun belirtilen
IPrinicipal userPrincipal = new MyCustomPrincipal();
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.SetThreadPrincipal(userPrincipal);
yüzden, bu gerçekten olmamalı Çalış (ikinci cevabıma bakın).
WMV yürütücüsünün, AppDomain öğenizin dışında çalıştığını varsayarak, ağ üzerinden dosyaya erişmek için WPF/Silverlight ortam yürütücüsünü barındırmayı denerdim.
- 1. Yönetilen ve Yönetilmeyen öbek
- 2. Un/yönetilen bir DLL nedir? Yönetilmeyen kod nedir?
- 3. 'Yönetilen' ve 'yönetilmeyen' uygunluk durumu nedir?
- 4. Kimliğe bürünme kimliğine karşı uygulama havuzu kimliği mi?
- 5. Yönetilmeyen
- 6. Yönetilmeyen C++ istisnasında yönetilen C++ istisnası nasıl yakalanır?
- 7. Yönetilen .net uygulamasının tüm yönetilmeyen DLL'lerinin listesi nasıl bulunur?
- 8. Symfony2'de bir kullanıcının kimliğine bürünme nasıl belirlenir?
- 9. "o asp net uyumluluk gerektirdiğinden hizmet aktive edilemez", ama kimliğe bürünme
- 10. Bir # işaretçisini yönetilmeyen bir DLL'ye nasıl iletebilirim?
- 11. jpa birleştirme yönetilmeyen varlık
- 12. yönetilen kodda özel eylem dll
- 13. C# yönetilmeyen nesnenin boyutu nedir?
- 14. 32bit ve 64bit yönetilmeyen DLL
- 15. Diğer kullanıcının kimliğine bürünme yaparken felaket başarısızlığı
- 16. Yönetilen bir C++ (C++/CLI)
- 17. Yönetilmeyen koddan yönetilmeyen kod çağırma performansı
- 18. Bir iş parçacığının geçme süresini
- 19. altprograma bir çalışma sayfası Geçme
- 20. Yönetilen bir dilde bir Bellek Yöneticisi Yazma?
- 21. Konuya göre PyPI'yi arama
- 22. Twitter'da OAuth Jetonunu Doğrulayın
- 23. Yönetilmeyen C++ işlevlerinden C#
- 24. Raylar: Bir Endişeye Bir Endişe Geçme
- 25. ADSI/IIS yönetimi ve ASP.NET kimliğine bürünme
- 26. MVC 4 - Kullanıcı kimliğine bürünme
- 27. JavaFX'te bir kimliğe sahip bir öğe nasıl bulunur?
- 28. Kullanılmakta olan bir kimliğe sahip bir görünümü kaydetmeye çalışıldı
- 29. Bir ConstructorInfo nesnesinin yönetilmeyen bir parametresi olup olmadığını nasıl belirleyebilirim?
- 30. Yönetilmeyen bir DLL'yi bir WPF tıklama-öncesi uygulamasıyla nasıl dağıtabilirim?