.Net Core (1.0+) Platformunda Kimliğe Bürünme (Impersonation)Beğen

Impersonation kimliğe bürünme anlamına gelir. Windows Service veya Web uygulaması gibi sistem, IIS veya farklı genel bir kullanıcıya ait olarak çalışan uygulamalar mevcuttur. Bu uygulamalar üzerinden spesifik bir windows kullanıcısı yetkilendirmesi ile işlem yapmak isteyebilirsiniz. Dosya okuma ve yazma buna bir örnektir. Yazmak istediğiniz (ağdaki veya lokal) klasör sadece belli bir kullanıcıya okuma-yazma izni vermiş olabilir ve sizin de o kullanıcı kimliği ile işlem yapmanız gerekebilir. .Net Framework üzerinde bu işi WindowsImpersonationContext ile yapabiliyorduk ancak gördüğüm kadarı ile .Net Core ve sonrası artık bu yapıyı desteklemiyor.

.NetCore platformunda herhangi bir kullanıcıya bürünerek işlem yapabilmek için WindowsIdentity.RunImpersonated metoduna aksiyon (delege) geçebiliyoruz. Ben aşağıdaki gibi bir yardımcı sınıf kullanıyorum.

Yukarıda özetle; advapi32.dll kütüphanesi aracılığı ile interop yaparak kullanıcı ve şifre bilgisiyle istediğimiz windows kullanıcısı için tokenhandle alıyoruz. Sonrasında bu token aracılığı kimliğe bürünerek istediğimiz aksiyonu gerçekleştiriyoruz. Bu yardımcı sınıfı örneğin aşağıdaki gibi kullanabilirim:

Yukarıda gerçekleştirilen dosya okuma, yazma, silme işlemleri belirttiğim windows domain-kullanıcı yetkilendirmesi ile gerçekleşecektir. İlgili Microsoft dokümantasyonuna bu link üzerinden ulaşabilirsiniz.

Yorum Yaz
10:01:38
3.4.2025 Perşembe
Altın Sözler
“Bu hayatta bir insanın, bayağılıktan veya yalnızlıktan birini seçmekten başka şansı yoktur.”
Web hosting by Somee.com