Oturum açmış kullanıcıları belirlemek için yerel Intranet Windows Kimlik Doğrulaması ile çalışan bir ASP.NET Core 3.0 uygulamam var. Standart Windows Kimlik Doğrulama davranışlarını kullanarak kullanıcının WindowsIdentity
sorunsuz bir şekilde yakalanmasını sağlayabiliyorum .
Ancak, kullanıcının otomatik İntranet Tarayıcı oturum açma (yani parola iletişim kutusu yok) kullanarak veya tarayıcı Parola iletişim kutusunu kullanarak açıkça oturum açarak tarayıcıya nasıl giriş yaptığına bağlı olarak , kullanıcı grupları için farklı sonuçlar elde ederim .
Aşağıda, filtrelenmiş bir grup üyelik listesi (yerleşik hesapları hariç tutan) dahil kullanıcı bilgilerini geri alan bir API isteği yer almaktadır. Soldaki manuel giriş, sağdaki otomatik giriş.
Açık oturum için kullanıcının parçası olduğu tüm özel grupları doğru bir şekilde görüyorum. Ancak, otomatik giriş için aynı gruplar görünmez:
Sunucudaki Kullanıcı ve Kimlik örneklerine de yakından baktım ve kullanıcı için aynı SID'lere atıfta bulunuyor, bu nedenle Grup Üyeliği için farklı sonuçların döndürülmesi garip görünüyor.
Aynı hesabı iade ettiğimde grup listesinin neden farklı olduğuna dair bir fikrin var mı? Grupların yerel olduğunu ve bu nedenle alan adı erişimi nedeniyle bir sorun olmaması gerektiğini unutmayın.
Not: Hatta localhost üzerinde yerel olarak test ediyorum ve bunu test etmek için Windows Proxy Ayarları'nı burada ayarladım:
Onay kutuları kapalıyken giriş yapmak zorundayım. Onlarla birlikte (yine de Chromium tarayıcılarında) kimlik bilgilerimi tarayıcının giriş iletişim kutusuna açıkça girmem gerekiyor.