یکی از امکانات ASP.NET مجموعه Membership و امکانات جانبی آن است. این مجموعه به برنامههای ASP.NET امکان تعریف کاربر، نقش و کنترل دسترسی بر اساس آنها را میدهد. برای این که بتوان از این امکانات استفاده کرد بایستی موارد مورد نیاز ASP.NET applications services در بانک اطلاعاتی مورد استفاده برنامه نصب گردد. این کار به طور معمول با کمک ابزار aspnet_regsql.exe انجام میشود.
بنده هم هر وقت که میخواستم یک بانک اطلاعاتی را برای یک برنامه ASP.NET آماده کنم از همین ابزار aspnet_regsql.exe استفاده میکردم. البته بعدها در این کار پیشرفت کرده و جای این اسکریپتها را در ویندوز پیدا کرده بودم:
C:WindowsMicrosoft.NETFrameworkv4.0.30319
من میخواستم انجام کار را خودکار کنم به همین دلیل آن اسکریپتها را از طریق کد باز کرده، اسم بانک اطلاعاتی خودم را به جای اسم پیشفرض آن میگذاشتم و دست آخر با هزار زحمت آن از طریق کدهای C# در داخل دیتابیس اجرا میکردم. این کارها واقعاً وقتگیر و پردردسر بودند. چون انجام کامل آن و دیباگ آن حدود ۳ روز طول میکشید. علاوه بر آن وقتی از شرکتی به شرکتی دیگر نقل مکان میکردم دیگر نمیتوانستم از آن کدهای قبلی استفاده کنم و باید آنها را دوباره از اول مینوشتم.
حال نکته بیسوادی من اینجاست که به تازگی متوجه شدم که کل این کارها با فراخوانی یک متود ساده هم قابل انجام بود! به کد زیر توجه کنید:
SqlServices.Install("databaseName", SqlFeatures.All, "connectionString");
این کلاس با ارزش در فضای نام System.Web.Management قرار دارد. جهت کسب اطلاع بیشتر به این لینک مراجعه کنید.
توجه: این نوشته در قالب سری نوشتههای «بیسوادی ما» میباشد.
دیدگاهها
سلام. اگه میشه بی سوادی من رو در این زمینه برطرف کنید.
اوایل که در حال یادگیری بودم با این امکان آشنا شدم. خیلی خوشم اومد. ولی وقتی در یه شرکت مشغول به کار شدم، گفتن که استفاده از این امکانات باعث ایجاد محدودیت میشه و امکان شخصی سازی رو کم میکنه.
خودم هم دیدم که رو لوکال به طور پیش فرض یه پایگاه داده از نوع اکسپرس می سازه. به نظرم رسید که باعث میشه مجبور بشیم دو تا پایگاه داده داشته باشیم. هرچند الان به نظرم بعیده که به این صورت باشه. میشه یه مقدار در این مورد توضیح بدید. متشکرم
@farbod: هیچ اجباری به داشتن دیتابیس مجزا نیست. شما میتوانید در همان دیتابیس اصلی برنامه، جداول و دیگر موارد مورد نیاز Membership را با کمک یکی از راههایی که در متن این نوشته توضیح داده ایجاد کرده و با معرفی صحیح آنها در web.config از آن استفاده نمایید.
Membership امکانات خیلی خوبه دارد که حیف است به خاطر «شخصی سازی»های بیمورد آن را کنار گذاشت.
سلام. با وبلاگت امروز آشنا شدم. برام خیلی خیلی جالب بود که مطلبی که امروز روی سایتم گذاشتم رو تو یک هفته پیش اینجا نوشتی. ممنون از مطالب خوب بلاگت.
ممنون کامیار. امیدورام بیشتر با هم در تماس باشیم.