شرح MemberShip و RoleManager

zorig4fun

Member
در جلسات گذشته ما پروفایل را فعال کردیم و پروفایل را برای کاربر در زمان ثبت نام وارد کردیم در این جلسه برای کاربر صفحه ای در نظر میگیریم که اطلاعات را از پروفایل خوانده و بخ ماربر نمایش داده شود هدف ما از این کار نشاندادن این است که چگونه اطلاعات را از پرفایل بخوانیم.

کار بسیار ساده میباشد و با مثالی کار را شروع میکنیم یک صفحه جدید به به پروژه اضافه میکنیم به نام MyProfile.aspx در این صفحه ما میخواهیم که کاربر ثبت نام شده بعد از لوگین کردن اطلاعات پروفایا خود را ببیند. در صفحه ما 3 تا لیبل میزاریم و نامگزاری میکنیم و تکس آنها را حذف میکنیم و در کدهای لود صفحه کدهای ذیل را اضافه میکنیم.


کد:
C#

        Country.Text = Profile.Country;
        Gender.Text = Profile.Gender;
        Age.Text = Profile.Age.ToString();

کد:
VB

Country.Text = Profile.Country 
Gender.Text = Profile.Gender 
Age.Text = Profile.Age.ToString()

در اینجا ما خیلی ساده چند تا لیبلی که در صفحه داشتیم را مقدار تکست آنها را برابر با اطلاعات پروفایل قرار دادیم. اطلاعات پروفایل را ما با صدا زدن کلاس پروفایل و اسم پروفایلی که در وب کانفیگ معرفی کردیم از دیتابیس میخوانیم. در این روش میبینیم که ما هیچگونه کانکشن یا دیتاسرس استفاده نمیکنیم تا اطلاعات را بخوانیم بلکه تمان موارد را خود ماشین به وسیله کلاس پروفایل انجام میدهد.

موفق باشید
 

zorig4fun

Member
متاسفانه سواد دات نت فارسی زبانان بالاتر از فریمورک 1.1 نیست و در اینترنت هیچکسی هیچ مقاله ای دیگر نمینویسه که تکنولوژی روز را به دیگران به زبان فارسی انتقال بده و درسته که زبان برنامه نویسی انگلیسی هست و باید یاد گرفت ولی زمان زیادی را نیاز داریم که انگلیسی را در حدی که بتوان مقاله خواند یاد گرفت اون هم مقاله فنی. برای همین امسال تصمیم گرفتم تا وبسایتی برای این منظور درست کنم و از دوستانی که میتوانند همکاری کنند خواهش میکنم کمک کنند تا وبسایت سریعتر راه اندازی بشه. در پروژه ملورین که کاملا مجانی میباشد و برای فارسی زبانان در نظر گرفته شده ویدئو های برای فروش گزاشته شده که همکنون با دوستانم در ایران برای فروش هماهنگ شده ولی تا سایت راه اندازی نشود به صورت رسمی اعلام نمیشود. درامد حاصل از فروش برای مخارج سایت که کم هم نیست در نظر گرفته شده لطفا برای یادگیری بیشتر شما و ساپرت مالی ملورین این ویدئو ها را با قیمت مناصب خریداری کنید.


بحث را ادامه میدهیم با رول ها تا حالا رول را ما فعال کردیم و در مواردی هم از آن استفاده کردیم ولی کاربری که در سایت ثبت نام میکند هیچ رولی به آن داده نمیشود. در این جلسه ما میخواهیم که وقتی کاربر ثبت نام میکند به کاربر رولی اختصاص دهیم بطور مثال آن را به رول از قبل ایجاد شده (کابر غیر فعال) معرفی کنیم.

برای این کار ما همانند مثالهای پروفایل کلاسی تعریف خواهیم کرد و در هنگام ثبت نام آن را استفاده میکنیم. خوب پروژه قبلی را باز کنید یا اینکه پروژه جدید ایجاد کنید و در صفحه رجیستر کاربر کدهای زیر را وارد کنید.

کد:
C#

// Deactivate event fires when user hits "next" in the CreateUserWizard 
public void AssignUserToRoles_Deactivate(object sender, EventArgs e) 
{ 
    
    
    // Add user to role 
    
    Roles.AddUserToRole(CreateUserWizard1.UserName, "عضو غیر فعال"); 
    
    
}

کد:
VB

    ' Deactivate event fires when user hits "next" in the CreateUserWizard 
    Public Sub AssignUserToRoles_Deactivate(ByVal sender As Object, ByVal e As EventArgs)

            
        ' Add user to role

        Roles.AddUserToRole(CreateUserWizard1.UserName, "عضو غیر فعال")


    End Sub

در اینجا ما کلاسی تعریف کردیم که هروقت کابر دکمه ثبت نام را میزند رولی به نام عضو غیر فعال برای کاربر در دیتابیس ذخیره میشود.
ما کلاس Roles را صدا زدیم و از آن AddUserToRole را که برای اضافه کردن رول به کاربر میباشد را انتخواب کردین در اینجا داخل پرانتز ما تعریف میکنیم که کدام کاربر را باید به رول اختصاص دهد که در اینجا چون کاربر به وصیله کنترل CreateUserWizard1 به دیتابیس اضافه میشود برای همین CreateUserWizard1 را صدا زده و اسمی که کاربر وارد کرده را میگیریم و به آن نام رولی که در دیتابیس موجود میباشد را میدهیم.

کار به این سادگی انجام گرفت و شما همانند درس قبلی میبایست به کنترل CreateUserWizard1 بگید که چه زمانی این کار صورت بگیرد که برای این کار ما مرحله اول را در نظر داریم و به پنجره پراپرتیز رفته و در ایونت CreateUserWizard1 ما CreatedUser را که دکمه ایجاد کاربر هست را به کلاس نوشته شده اختصاص میدهیم.

البته موردی که در جلسه قبل هم یادم رفت بگم این هست که در ایونت کنترل اگر شما دو بار روی ایونت خاصی کلیک کنید کدهای مربوط به آن برای شما ایجاد میشود و کدها را داخل آن میتوانید بنویسید. اسامی کنترل ها و ایونت ها شاید متفاوت باشد برای همین اول دو بار کلیک کنید بعد کدها را با اسامی درست در مابین آنها قرار دهید.


موفق باشید
 
آخرین ویرایش:

zorig4fun

Member
احتمالا این آخرین مقاله من خواهد بود در این تاپیک و بحث رو با ارسال ایمیل به کاربر خاتمه میدهم

در کنترلهای ثبت نام و عوض کردن پسورد و یاداوری پسورد ما در پنجره پراپرتیز یک قسمت میبینیم به نام MailDefinition که کار ارسال ایمیل را به عهده دارد. در این قسمت ما اپشنهای دیگری را داریم که موارد مهم را برای شما توضیح میدهم.

From در این گزینه شما میبایست آدرس ایمیل سایت را وارد کنید.
Priority این گزینه مهم بودن ایمیل را تنظیم میکند.
Subject موضوع ایمیل را مشخص میکند.
BodyFileName در این گزینه که من در آخر اوردم فایل تکسی را باید معرفی کنید که درواقع متن ایمیل شما میباشد.

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

فایل BodyFileName را به صورت ذیل بنویسید:

کد:
<%UserName%>
<%Password%>
<%PasswordQuestion%>
<%PasswordAnswer%>

اگر خواستید مواردی را جلوی آنها اضافه کنید که کاربر بداند اطلاعات چه هستند و با ساخت جداول و غیره آنها را فرمت دهی کنید و فایل را با فرمت txt ذخیره کنید.کار به پایان رسید.


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

امیدوارم همه شما را در سایت خودم www.melorin.net ببینم و در آنجا آموزشهای دیگری را نیز خواهید یافت
موفق باشید
 

TNZ187

Member
واقعا چرا ؟

سلام
واقعا نا امید شدم . :sad: . بابا من که مقالات کامل سفارشی کردن Mmembership , RoleProvider رو لینک داده بودم خوب چرا مراجعه نمی کنید آخه .
برای دوستانی که به طور کلی علاقه به سفارشی کردن دارن کتاب Wrox.Professional.ASP.NET.2.0.Server.Control.and.Component.Development.Aug.2006
رو توصیه می کنم . یک دکتر ایرانی به نام آقای خسروی یا شبه به اون نوشته و متن خیلی رونی هم داره .
 

shirani

مدیر انجمن <A href="http://forum.majidonline.com/f
من ميخوام رول دادن به يوزر ها را روي وب پياده سازي کنم ( نمي خوام از طريق asp.net configoration اينکار انجام بدم )

چي کار بايد کرد
 

m_tavakoli_h

New Member
memebership یا یک گزینه دیگه؟

نظرتون رو در مورد استفاده از mmebership یا این نوشتن جدول دیگه می خو
و اینکه توی roll بایستی فقط نقش ها رو تعریف کرد و یا اینکه عملیت رو هم می شه تعریف کرد
مثلا کارگزین یا اضافه و حذف کارمند
 

tarenoco

Member
سلام منو ببخشید فکر نکنم که جای مناسبی سوال مطرح می کنم
ولی میخوام سوالم رو بپرسم
من یه قالب html دارم میخوام با asp یه امار گیر براش بذارم که آمار روز و هفته و... رو نشون بده
نمیخوام از این کد های آماده استفاده کنم
ممنون میشم راهنمایی کنید
 

جدیدترین ارسال ها

بالا