kimliğine bürünme özelliğini ayarlayın, iki dizindeki dosya sayısını saymaya çalışan çok basit bir proje oluşturdum. User1
, Directory2
ve User2
erişiminin Directory1
erişmesine izin verilmez. Kimliğe bürünme nedeniyle başvurumu yapan kullanıcıya bağlı olarak yalnızca bir rakam almalıyım. Her iki kullanıcı da yönetici olarak kurulur.İlk bakış için ASP.NET
Bu nedenle Visual Studio 2015'te (Windows 8.1'de çalışan) yeni bir MVC projesi oluşturdum ve Windows kimlik doğrulamasını kullanmak üzere seçildim. Uygulama çalıştırıldıktan ve çalıştırıldıktan sonra (ISS Express'te), makinemde User1
'a geçiyorum (Active Directory yok) ve Internet Explorer'da web sitesini arayın (evet, "Tümleşik Windows kimlik doğrulaması", ayarlarda etkinleştirildi). Bu kurulumla, HttpContext.User.Identity
'daki kullanıcı User1
ve WindowsIdentity.GetCurrent()
, Visual Studio'da çalışmakta olduğum geliştirme kullanıcımdır.
WindowsIdentity winId = (WindowsIdentity)User.Identity;
WindowsImpersonationContext ctx = null;
try
{
ctx = winId.Impersonate();
// GetNumbers() tries to get the number of files for both directories
numbers = GetNumbers();
}
catch (Exception e)
{
}
finally
{
if (ctx != null)
{
ctx.Undo();
}
}
Ne yazık ki, istisna olsun Bazı insanlar bu sorunu çözdüğünü iddia ediyorlardı: https://kc.mcafee.com/corporate/index?page=content&id=KB56194 Benim için değil. Listeye User1
ve kendi kullanıcımı ekledim ve bilgisayarı yeniden başlattım. Değişiklik yok.
Bana biraz umut veren tek şey, https://msdn.microsoft.com/en-us/library/ms998351.aspx#paght000023_impersonatingusinglogonuser sayılı belgede açıklandığı gibi, ayrı bir oturum açma ile taklit edilmesidir. Dezavantajları oldukça açıktır: Kullanıcının parolasını almalıyım ve neden zaten kullanıcı girdiysem tekrar giriş yapmalıyım benim için yaptı. Benim Web.config
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Projem ayarları
bu bana göre büyük değişiklikler yapmadan yeni bir proje olmasına rağmen, sadece aklı kontrol için biraz daha bilgi ...
- "Anonim kimlik doğrulaması"
false
- "Windows kimlik doğrulaması iyon Yönetilen pipline modu 'beklendiği gibi bu basit bir proje çalışması için değiştirmek için ne
Integrated
herhangi bir öneriniz olan" true
Saygılarımızla, Carsten