PDA

View Full Version : اکتیو دایرکتوری چیست؟



Mrs.Net
شنبه 27 مرداد 1386, 19:45 عصر
نمیدونستم مربوط به کدوم بخش میشه.
سیستم تحت شبکه با بانک sql server میخوام طراحی کنم
به من گفتند حتما از اکتیو دایرکتوری باید استفاده کنی! اما اصلا نمیدونم چی هست؟ چیکار میکنه؟
لطفا یک توضیحی بدید و اینکه از کجا باید بگیرم و نصب کنم ؟
آیا داخل کدهای سی شارپ باید دستکاری بشه و یا اینکه اگه اون درست نصب بشه دیگه با سی شارپ کاری نداره؟ و همینطور sql server ؟
آیا رو win xp نصب میشه یا حتما باید ویندوز سرور باشه؟
خیلی ممنون

PC2st
شنبه 27 مرداد 1386, 19:54 عصر
مواردی که پیدا کردم، شاید بدردت بخوره...
http://pnr2.blogfa.com/post-72.aspx
http://forum.p30world.com/showthread.php?t=4176
http://forum.p30world.com/showthread.php?t=32975

Mrs.Net
شنبه 27 مرداد 1386, 20:07 عصر
ممنون یه چیزهایی فهمیدم که چی هست و چیکار میکنه
اما بقیه سوالهام نه

mohammad_abedy
شنبه 27 مرداد 1386, 20:14 عصر
من دقیقا با اکتیو دایرکتوری برای برنامه نویسی کار نکردم اما میدونم تو ویندوز 2003 سرور وجود داره و برای کنترل کاربران وتعریف userومحدودیت انها در شبکه میشه در ضمن این userهایی که در اکتیو دایرکتوری تعریف میشن رو میتونیم تو SQLاضافه کرد اطلاعات دقیق ترو میتوی تو کتاب مرجعWindows 2003 server انتشارات ناقوس پیدا کنی

PC2st
شنبه 27 مرداد 1386, 20:44 عصر
"برای توسعه برنامه ها تحت Active Directory شما باید فضای نام System.DirectoryServices رو به پروژتون اضافه کنید."
متن فوق ترجمه ای بود از کتاب Professional C#, Third Edition که حدود 24 مگابایت حجم داره (حجم غیر فشرده)، یک فصل از کتاب حدود 45 صفحه در این مورد توضیح داده.

اگر خواستید این کتاب رو به عنوان منبع مورد استفاده قرار بدید. (کتاب فارسی نیست)

Mrs.Net
دوشنبه 29 مرداد 1386, 16:04 عصر
اگر خواستید این کتاب رو به عنوان منبع مورد استفاده قرار بدید. (کتاب فارسی نیست)
میشه لینک کتاب بهم بدید؟
هنوز جواب نگرفتم که آیا رو ویندوز xp نصب میشه یا نه؟
ممنون

anubis_ir
دوشنبه 29 مرداد 1386, 16:21 عصر
دوست عزیز،
خیلی ها در این تاپیک به شما پاسخ دادند ولی نگفتند که مبحث اکتیودایرکتوری اصلا کاری به برنامه نویس ندارد (شما نمی‌خواهید یوزر به اکتیو دایرکتوری اضافه کنید یا نمی‌خواهید پرمیشن‌ها رو ست کنید که نیاز به کتابهای بالا داشته باشید). مشکل مدیر شبکه است. آیا برای جایی که می‌خواهید کار کنید شبکه دارند؟ اگر بله یعنی به احتمال بالا اکتیو دایرکتوری را هم دارند. اون کسانی هم که به شما گفتند حتما باید با اکتیو دایرکتوری کار کنید منظورشان برنامه تحت شبکه بوده که در ادامه توضیح می‌دهم:
شما برنامه خودتون رو به صورت معمولی روی همین ویندوز اکس پی توسعه می‌دهید. (کاملا معمولی)
بعد روی سرور یا هر کامپیوتر دیگری در آن شبکه یک sql server‌ نصب می‌کنید (یکبار و روی یک کامپیوتر). بعد کلاینت‌ها فقط با یک کانکشن استرینگ صحیح به این سرور متصل شده و کار می‌کنند. تنها کاری که شما باید انجام بدهید همین است (ست کردن کانکشن استرینگ). مابقی موارد برنامه نویسی تحت شبکه در دات نت و موارد مشابه لحاظ شده است و نیازی نیست شما حتی به آن در بدو امر فکر کنید.

Mrs.Net
دوشنبه 29 مرداد 1386, 18:38 عصر
بعد کلاینت‌ها فقط با یک کانکشن استرینگ صحیح به این سرور متصل شده و کار می‌کنند. تنها کاری که شما باید انجام بدهید همین است (ست کردن کانکشن استرینگ). یعنی برنامه ام که روی سرور نصب میشه. دیگه احتیاج نیست که رو کلاینتها نصب بشه؟ و فقط با یک shortcut رو هر کلاینتی اجرا میشه؟! (این جزو کارهای active directory هست؟)

ولی من میخوام که تا حد آشنایی خوبی از این سیستم و کاری که میکنه با خبر بشم. مگر اینکه به هیچوجه در کدنویسی به اون احتیاج پیدا نکنم - هم در سی شارپ هم در sql -
آیا اینجوریه؟

ممنون

رضا عربلو
دوشنبه 29 مرداد 1386, 21:38 عصر
شما برای اینکه از اکتیو دایرکتوری استفاده کنید تنه کافی است که SQLConnection تان را بصورت Windows Authentication بنویسید.
بقیه کارها را admin شبکه خودش می تونه و باید بتونه انجام بده.

Mrs.Net
سه شنبه 30 مرداد 1386, 11:58 صبح
ممنون از دوستان
اما هنوز:
1. آیا رو ویندوز xp نصب میشه؟
2.
"برای توسعه برنامه ها تحت Active Directory شما باید فضای نام System.DirectoryServices رو به پروژتون اضافه کنید."
پس داخل کدهای برنامه ام باید ازش استفاده کنم. اما چه استفاده ای؟

anubis_ir
سه شنبه 30 مرداد 1386, 12:10 عصر
- روی ویندوز اکس پی شما می‌تونید ADAM رو نصب کنید.
http://download.microsoft.com/download/5/7/a/57a8d3ed-89f7-4878-b945-b68c447f288a/Adam.DOC
ولی بازهم تکرار می‌کنم شما نیازی به اینکار ندارید.
کلا اکتیودایرکتوری در ویندوز از زمان ویندوز 2000 به این شکل رسمی ارائه شد و روی ویندوزهای سرور باید نصب و تنظیم شود. (مبحث گسترده‌ای است به اندازه یک کتاب!)

- شما نیازی هم به System.DirectoryServices ندارید که دلیلش را عرض کردم. شما برنامه نویسی ویژه اکتیودایرکتوری نمی‌خواهید انجام بدهید. مثلا اضافه کردن کاربر به اکتیودایرکتوری با برنامه نویسی. این کار شما نیست.

برنامه‌ها با یک شورت کات هم اجرا نمی‌شوند. باید روی تک تک کلاینت‌ها نصب شود. ولی سرور sql شما فقط یکبار باید روی یک سرور نصب شود و بس. حالا تمام این کلاینت‌ها داده‌های خودشان را با این سرور sql مدیریت خواهند کرد.
اگر می‌خواهید روی کلاینت ها چیزی نصب نکنید باید به برنامه نویسی ASP.NET روی بیاورید. (که عموما در شبکه‌های نسبتا بزرگ این روش مرسوم است. چون شما هربار مسؤول شبکه را نمی‌توانید مجاب کنید که لطفا برنامه جدید من را که تغییر کرده روی تمام کلاینت ها نصب کن. این مشکلات در ASP.NET وجود ندارد چون تمام کار شما متمرکز روی سرور است)

dot_net_lover2
سه شنبه 30 مرداد 1386, 12:48 عصر
- چون شما هربار مسؤول شبکه را نمی‌توانید مجاب کنید که لطفا برنامه جدید من را که تغییر کرده روی تمام کلاینت ها نصب کن.


البته اینم راه حل هایی داره ، مثلا شما میتونید برنامه رو به صورت msi Package در بیارید و سپس Admin از پشت یک کامپیوتر توانایی نصب بر روی کلیه کامپیوتر ها را دارد ، خیلی هم ساده است(البته Admin باید Admin باشه :چشمک:)




سیستم تحت شبکه با بانک sql server میخوام طراحی کنم
به من گفتند حتما از اکتیو دایرکتوری باید استفاده کنی!


معمولا برنامه های تحت شبکه برای امنیت به دو روش میتونند اقدام کنند ، یکی اینکه برنامه نویس ، برای امنیت نرم افزارش ، بخشی را طراحی کنه. دیگر اینکه در شبکه های که Domain و ActiveDirectory موجود باشد از ActiveDirectory استفاده نماید.

انتخاب یکی از دو روش فوق به کاربرد نرم افزار و موضوع اون خیلی بستگی داره ، معمولا از روش اول و یا ترکیب دو روش استفاده میشود.

(خودم تا حالا با روش دوم کد نزدم ولی گمونم روش آقای عربلو ، منطقی باشه)

رضا عربلو
سه شنبه 30 مرداد 1386, 17:47 عصر
برنامه‌ها با یک شورت کات هم اجرا نمی‌شوند. باید روی تک تک کلاینت‌ها نصب شود. ولی سرور sql شما فقط یکبار باید روی یک سرور نصب شود و بس. حالا تمام این کلاینت‌ها داده‌های خودشان را با این سرور sql مدیریت خواهند کرد.
اگر می‌خواهید روی کلاینت ها چیزی نصب نکنید باید به برنامه نویسی ASP.NET روی بیاورید. (که عموما در شبکه‌های نسبتا بزرگ این روش مرسوم است. چون شما هربار مسؤول شبکه را نمی‌توانید مجاب کنید که لطفا برنامه جدید من را که تغییر کرده روی تمام کلاینت ها نصب کن. این مشکلات در ASP.NET وجود ندارد چون تمام کار شما متمرکز روی سرور است)

شما می توانید برنامه تان را در یک فولدر share کنید. این کار مشکل شما را در آپدیت کردن برنامه برای کلاینت ها حل می کند.
در این روش در صورتی که از اسمبلی های غیر میکروسافت در برنامه تان استفاده کرده باشید مشکل trust خواهید داشت (اسمبلی های مایکرو سافت بطور پیش فرض تارست شده اند). که این مشکل به راحتی با ابزارهای caspol و یا ایجاد یک پکیج msi و قرا دادن آن در Group policy به راحتی قابل حل است.