2009-03-05 21 views
0

Ağımızdaki farklı sunuculardaki çeşitli IIS yüklemelerini yönetmeme izin veren küçük bir web uygulaması yazma aşamasındayım. Alan adı denetleyicimiz yok.ADSI/IIS yönetimi ve ASP.NET kimliğine bürünme

Win32 api ve LogonUser yöntemini kullanan küçük bir kimliğe bürünme denetleyicisi yazdım. Sonra yeni bir site oluşturmak için System.DirectoryServices ve IIS ADSI sağlayıcısı kullanıyorum.

aşağıdaki rutin (daha iyi okunabilmesi için düz metin dizeleri ile bazı değerleri alışverişinde) adres:

  if (impersonationSvc.ImpersonateValidUser("[email protected]", String.Empty, "PASSWORD)) 
      { 


      string metabasePath = "IIS://" + server.ComputerName + "/W3SVC"; 
      DirectoryEntry w3svc = new DirectoryEntry(metabasePath, "Administrator", "PASSWORD"); 

      string serverBindings = ":80:" + site.HostName; 
      string homeDirectory = server.WWWRootNetworkPath + "\\" + site.FolderName; 


      object[] newsite = new object[] { site.Name, new object[] { serverBindings }, homeDirectory }; 

      object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite); 
      int id = (int)websiteId; 

      impersonationSvc.UndoImpersonation(); 
     } 

ben web uygulaması (SRV6) üzerinde barındırılan sunucu kullanmak Bu rutin işleri. Yeni bir site oluşturuldu. Ben mesela SRV5 kullanırsanız

, bizim ağ üzerindeki başka bir sunucu (hayır etki alanı ile), ImpersonateValidUser işleri, DirectoryEntry oluşturulur, ancak w3svc.Invoke aşağıdaki hata nedeniyle başarısız:

[COMException (0x80070005) : Erişim

System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +377678 
System.DirectoryServices.DirectoryEntry.Bind() +36 
System.DirectoryServices.DirectoryEntry.get_NativeObject() +31 
System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) +53 

...

herkes bunu nasıl çözebileceklerini bilir] reddedildi?

cevap

1

Bu durumda kimliğe bürünme özelliğini kullanamazsınız. Taklit ettiğiniz hesap, yerel makinede oturum açma haklarına gereksinim duyar.

Web sunucularınız bir etki alanının parçası değilse, Tant102'nin web hizmetleri düşüncesi sizin için tek yoldur.

+0

Haklısınız .. fazla kahve – kitsune

0

Bu sunucuya bağlandığınızda hangi ayrıcalıkların kullanıldığını kontrol etmek için SRV5 olayına bakarım. Güvenlik günlüğündeki hataları günlüğe kaydetmek için grup ilkelerinizi değiştirmeniz gerekebilir.

Sunucularınızda web servislerini kurmak, tercihen girişler ve/veya ip kısıtlamalarıyla korunmak, bu tür işlemleri yapmak için daha kolay geliyor.