בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > כללי

הכרות ושימוש ב-ADSI

מה זה: Active Directory Services Interface (ADSI)?

ADSI זה אוסף של אובייקטי COM המספקים שיטות להתממשק עם שרותים במחשב.
אחד השימושים הנפוצים של ADSI הנו התממשקות ל Active Directories.

הנושא של ADSI הוא גדול ורחב וגם 5 מאמרים לא יספיקו לתאר אותו, במאמר הזה אני אתן לכם אפשרות ראשונית להבנת ה ADSI.

מהם שירותי ספריות? (directory services)

שירותי ספריות מתעסקים בדברים כמו:
איזה מדפסות מותקנות ברשת.
או מהם הם הדומיינים של המחשבים ברשת.

מהם ספריות אקטיביות ? (Active Directories)
ספריות אקטיביות תוכננו ב 3 רמות של הפשטה.
- עצים Trees-
- יערות - Forests
- תחומים- Domains

יער הנו אוסף של עצים (ידוע :-))
יערות ועצים משתפות מערכת יחסים אמינה ביניהם.
עצים הנם אוסף של תחומים.
עצים ותחומים מחלקים ביניהם סכמות משותפות.
תחומים נשברים לתוך אחד או יותר יחידות ארגוניות לוגיות שהנן ישויות לניהול עצמי.

כלומר

  • יער
    • עץ
    • עץ
      • תחום
      • תחום
    • עץ
ישויות בתוך ספריות אקטיביות

¨ 0 - Organization
¨ DC- Domain Component
¨ C- Country Name
¨ OC- Organizational Unit
¨ ST-State
¨ CN - Common Name
¨ L - Locality

עץ מפורמט בצורה נכונה יראה בצורה הבאה:

CN=Nicholas LaDieu, OU=Sales, OU=Sales Division, O=nodei

ספריה אקטיבית בדרך כלל מנסה להציג ממשק משותף לאינפורמציה אודות הרשת, מתוך מערכות שאינן דומות.
ADSI מאפשר להוסיף תכונות לעצים הללו כדי לאסוף אינפורמציה נוספת.

אז אייך אני משתמש ב ADSI

הדוגמא הבאה מציגה כיצד לפנות לאובייקט הדומיין או המחשב בעזרת ADSI
למי שמתעצל לכתוב כל הזמן Response.write

Function w(x) Response.Write(x) End Function Function br() Response.Write ("<br>") End Function אובייקט ה ADSI חי במערכת כל הזמן, לכן כאשר פונים אליו, בניגוד לאובייקטי ACTIVEX אותם אנחנו צריכים קודם כל לייצר ע"י CreateObject, אנו פונים אליו ע"י GetObject.

בקריאה הזאת אנחנו מבקשים לבדוק את הדומיין MyDomain

Set Tree=GetObject("WINNT:// MyDomain ") ומציגים את התכונות של הדומיין w "Domain Name= " & Tree.Name & br w "Class = " & Tree.Class & br w "Parent = " & Tree.Parent & br אם אריץ את הקוד הבא על הדומיין NGS-CORP.COM אקבל את התוצאה הבאה: Domain Name= NGS-CORP.COM Class = Domain Parent = WinNT אם הייתי מריץ את זה על איזה שם כל שהוא של מחשב בדומיין Domain Name= Comp Class = Computer Parent = WinNT://WORKGROUP

בוא נסתכל על הסכמות:

Set Scheme=GetObject(Tree.Schema) w "< hr >" אם האובייקט שייצרנו הנו מסוג Container אז התכונה Containment אוחזת בתוכה רשימה של סוגי אובייקטי ADSI שהאובייקט המסויים הזה (במקרה שלנו ה WinNT ) יכול להכיל.
השם של הסכמה ישתנה, אם נפנה לדומיין עצמו נקבל DOMAIN כשם הסכמה, אם נפנה למחשב נקבל Computer כשם. If oScheme.Container Then w oScheme.Name & br For Each member In Scheme.Containment w " " & member & br Next end if % > במקרה שהאובייקט הוא דומיין הקריאה הקודמת תחזיר לנו: Domain Computer User Group במקרה שהאובייקט הוא מחשב: Computer User Group Service FileService PrintQueue לכל אחת מהתכונות הללו אפשר להכנס בעזרת ADSI ולעשות בהן כעולה על רוחכם.

בעיקרון אתם יכולים להשתמש ב ADSI בכל מיני סוגי פעיליות כגון ייצירת ספריות וירטואליות, שליטה על מדפסות, ניהול משתמשים וסיסמאות ב NT’ ועוד ועוד.



דוגמא למציאת פרטים על המשתמש שנכנס לאתר מתוך ה NT בעזרת ADSI.

כדי למצוא את הפרטים הדף צריך להיות במצב של Windows Authentication או Basic Authentication

מתוך ה ServerVariables ("LOGON_USER")) ניקח את שם המשתמש שנכנס לדף

sFullUser = trim(Request.ServerVariables ("LOGON_USER")) בדרך כלל השם מגיע בצורה הבאה serverName\userName
נפריד בין שם השרת לשם המשתמש iPos = InStr(sFullUser, "\") sDomain = Left(sFullUser, iPos - 1) Logon_user = Mid(sFullUser, iPos + 1) נשלח בקשה ל NT להביא את המשתמש Set objUser = GetObject("WinNT://" & sDomain & "/" & Logon_user) w objUser & br בשדה description נמצא מה אנשי ה NT כתבו על המשתמש המסוים UserId = objUser.description w UserId= & br



דוגמא להחלפת סיסמא למשתמש בעזרת ADSI

On Error Resume Next Set oUser = GetObject("WinNT://machinename/username") oUser.ChangePassword "oldpassword", "newpassword" oUser.SetInfo Set oUser = Nothing If (err.number < > 0) Then ' Failed Else 'Success End if



דוגמא להקמת ספריה וירטואלית ב IIS בעזרת ADSI

תחילה יש ליצור ספריה פיזית בעזרת FSO

set fso = createobject("Scripting.filesystemobject") fso.createfolder("\\myserver\wwwroot\myDir") הקמת הספרייה הוירטואלית ע"י שימוש באובייקט ה IIS set objIIS = GetObject("IIS://myserver/W3SVC/1/Root") set objVirtualDir = objIIS.Create("IISWebVirtualDir","myDir") 'the physical name can be different from the virtual name: objVirtualDir.Put "Path", objIIS.Path & "\myDir_physical" objVirtualDir.SetInfo objVirtualDir.AccessScript = true objVirtualDir.AppCreate true



הוספת משתמש ל window 2000

Dim usr, passwd, fname usr = Request.Form("txtUsername") passwd = Request.Form("txtPassword") fname = Request.Form("txtFullName") Const strDomain="RPTSERVER" SaveUser usr,passwd,fname sub SaveUser(UID, PWD, FULLNAME) Dim strUser, oDomain, oGroup, oUser, oUserInfo strUser = lcase(UID) Set oDomain = GetObject("WinNT://" & strDomain) Set oUser = oDomain.Create ("user", strUser) oUser.setinfo set oUserInfo = getobject("WinNT://" & strDomain & "/" & strUser & ",user") call oUserInfo.setpassword(lcase(PWD)) oUserInfo.fullname = FULLNAME oUserInfo.setinfo Set oDomain=Nothing Set oUser=Nothing Set oUserInfo = nothing end sub



קביעת תאריך פקיעת סיסמא של משתמש ב NT בעזרת ADSI

Set oUser = GetObject("WinNT://machinename/username") oUser.Put "PasswordExpired", CLng(1) oUser.SetInfo

ועוד, ועוד ועוד.

ADSI הוא מאד מסובך, אני ממליץ לרכוש ספר מיוחד על ADSI או למצוא ספר ASP שמרחיב את נושא ה ADSI בתוכו.
מאמרים נוספים בנושא:
Active Directory Overview
Secure Your Applications With Active Directory

בהצלחה



התגובות שלכם

         
01. 03/07/2005  אור
מה הכוונה
"... הדף צריך להיות במצב של Windows Authentication או Basic Authentication"
ואיך עושים את זה?


מחבר: נחום גינתרמת קושי: 2  ||  עוד לא דורגכל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם