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?
Haklısınız .. fazla kahve – kitsune