PDA

View Full Version : Role based security



titbasoft
شنبه 12 شهریور 1384, 16:43 عصر
آیا php از role based security پشتیبانی می کنه؟
اگر بخواهیم روی یک متد و یا کلاس سطح دسترسی تعریف کنیم چه کار باید بکنیم؟

oxygenws
شنبه 12 شهریور 1384, 19:11 عصر
سلام، من منظورت رو از role based security نفهمیدم.... اگر منظورت استفاده از عباراتی مثل private و public و .... است، باید بگم که در PHP5 پشتیبانی میشه، اما در 4 نه.

titbasoft
شنبه 12 شهریور 1384, 19:30 عصر
فکر کنم سوالم رو بدجور مطرح کردم.
اگه یه مثال بزنم شاید بهتر باشه. توی asp.net شما به صورت زیر می تونید یک کلاس رو طوری محدود کنید که فقط کاربرانی که عضو گروه (یا role) مثلا sysAdmins هستن بتونن از این کلاس instance بگیرند. می خواستم مشابه چنین کاری توی php انجام پذیره؟

<PrincipalPermissionAttribute(SecurityAction.Demand , Role:="sysAdmins")>
public class myClass{
...
}

oxygenws
شنبه 12 شهریور 1384, 19:49 عصر
این تعامل خیلی زیادی با سیستم عامل می خواد و بعید می دونم توی زبان های cross-platform بتونید همچین چیزی پیدا کنید.

برای چنین کاری در PHP یا بهتر بگم لینوکس، به نظر من بهتره از file system و پرمیشن های اون استفاده بشه. از user ها و group ها و از اونجایی که به طور استاندارد هر کلاس در یک فایل مجزا قرار داره، فکر نکنم مشکلی با این کار به وجود بیاد. ضمن اینکه باید کمی کد زنی تون رو هم تغییر بدین.

و در آخر بهتره دوباره یادآوری کنم که PHP یک زبان برای web application می باشد :)

titbasoft
شنبه 12 شهریور 1384, 20:01 عصر
خیلی ممنون از راهنماییتون
اما درسته که روش بالا می تونه با role های windows کار کنه ولی الزاما این طور نیست. امکان این وجود داره که شما هنگامی که دارید کاربرتون رو authorize میکنید role هایی رو که درش عضو هست هم مثلا از یک database بخونید و به کاربرتون attach کنید. (این role ها کاملا جدا از role های ویندوز هستند و شما اون ها رو توی web application خودتون مدیریت می کنید)
این طور که من متوجه شدم امکان چنین کاری در php وجود نداره. همین طوره؟

oxygenws
شنبه 12 شهریور 1384, 20:07 عصر
آهان..... فکر کنم تازه گرفتم چی میگید!! :)

نه، چنین امکانی به این راحتی که شما میگید وجود نداره :)
سیستم ها و کلاس هایی برای این کار موجودند، اما چیزی که ذاتا در زبان پشتیبانی بشه خیر.
باید قسمت user management رو هم خودتون زحمتش رو بکشید :)

titbasoft
شنبه 12 شهریور 1384, 20:20 عصر
اما به هر حال یه چیزی داره که خوب بازم جا رو برای بحث باز میزاره و اون هم open source بودن و اضافه کردن هر چیزی که دلتون می خواد به اونه. به قول جناب inprise چنین محیط های آفریده شده اند تا یک platform بوجود بیارن تا چیزی رو می خواهید اول بتونید بسازید و بعد ازش استفاده کنید!

خیلی ممنون از پاسخ هاتون