הצילו - DirectoryEntry

הצילו - DirectoryEntry

היי לכולם! אני צריך ליצור Virtual Directory ע"י קוד ומשתמש באובייקט DirectoryEntry. הבעיה: בכל פעם שאני מנסה לגשת לתיקיות ב - "IIS://" אני מקבל Access Denied. ניסיתי כבר להתחבר עם סיסמת Administrator, משתמש ASPNET וכל הקונפיגורציות האפשריות וכלום לא עוזר. מישהו יודע איך אני אמור ליצור אובייקט DirectoryEntry, ומה צריך להיות ב - web.config כדי שהדבר המזויין הזה יעבוד? בתודה מראש, מוטי
 

yuval k

New member
למה הכוונה ב"ניסיתי כבר להתחבר עם

סיסמת Administrator"?
 
אוקיי, כנראה צריך יותר פירוט...

אז ככה: הקונסטרקטור של המחלקה DirectoryEntry יכול לקבל סיסמת אדמיניסטרטור, וכך לקבל גישה ל - Active Directory. הנה קוד שעובד באפליקצית Console אבל כשאני מעביר אותו ל - ASP.NET (עם השינויים הנדרשים, כמובן) אני מקבל Access Denied:
using System.DirectoryServices; using System; class Virtual { public static void Main() { string serverName = "localhost"; string password = ""; string serverID = "junky-837828b37"; DirectoryEntry w3svc = new DirectoryEntry ("IIS://" + serverName + "/w3svc",serverID + "\\administrator", password,AuthenticationTypes.Secure); DirectoryEntries sites = w3svc.Children; foreach (DirectoryEntry d in w3svc.Children) { Console.WriteLine(d.Name); } } }​
תודה - ואם צריך עוד הבהרות, אשמח לתת...
 
עוד משהו

הקוד מדפיס למסך את תת הספריות בספריה הראשית של ה - IIS, והשגיאה היא על השורה:
foreach (DirectoryEntry d in w3svc.Children)​
תודה
 
הסתדרתי

כל מה שהיה צריך זה להוסיף ל - web.config את השורה:
<identity impersonate="true" userName="MACHINENAME/administrator" password=""/>​
השאלה, מה אני אעשה בשרת האיחסון, ששם לא תהיה לי סיסמת administrator, אבל כשנגיע לגשר... תודה
 

yuval k

New member
../images/Emo45.gif

זה אכן הפתרון, אך לא הייתי בטוח שלא ניסית אותו (כתבת שנתת סיסמת המנהל, ולכן שאלתי איך). אני משער שאפשר לבקש מחברת האיכסון משתמש עם הרשאות נרחבות יותר, בשביל מטרה זו. בהצלחה!
 
ניסיתי אבל...

כתבתי ב - web.config את תגית impersonate בלי שם משתמש. ואז, ראיתי באיזה אתר נידח את הצורה הנכונה (בכל אתר מייקרוסופט לא מצאתי דוגמה לעניין הזה) וזה היה הפתרון. שים לב ששאלתי גם מה צריך להיות ב - web.config, כך שהכיוון היה נכון...
 
למעלה