• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

ابجکت های 2005 و چیزایی که داخلش دوست داریم پیاده بکنیم

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
سلام اقایون حرفه ای ببینین میتونین این مشکل و حل کنین یا نه !!!
داخل vs 2005 در یک پروزه از یک ابجکت لاگین و create user استفاده کردیم یک صفحه هم ساختیم که به صورت لایه ای برای پروفایل کاربر ها تعریف شده . سیستم این طوری هست که اگر کاربر create user رو انجام داد یعنی ثبت نام اولیه رو انجام داد بعد از create کردن به قسمت لاگین هدایت میشه . و بعد لاگین میکنه و به قولی خودش رو به سیستم میشناسونه . حالا این کاربر باید ثبت نام تکمیلی رو هم باید انجام بده و تا این ثبت نام رو انجام نده نمیتونه از سیستم استفاده بکنه . حالا مشکل اینجاست ما میخواهیم زمان لاگین یک کدی بنویسیم که بگیم اقا اول چک کن اگر این یوزر اطلاعات تکمیلی رو هم (به غیر از create user) پر کرده بود ریدایرکت کنش به مثلا صفحه home ولی اگر اطلاعات تکمیلی رو فرمش رو تکمیل نکرده ریدایرکت کن به صفحه پروفایل . ایده هاتون رو با کد بنویسید م تا بقول معروف یک بحث توپ بکنیم میدونم که خیلی چیزای دیگه غیر از این یاد میگیریم . راستی لایه اول هم اسمش هست BS_Member .
زبان نوشتنتون هم کسایی که #C بلدن با #C بنویسن کسایی هم که VB کار کردن با VB فرقی نمیکنه من رو جفتش تسلط دارم میتونیم رو جفتش با همه بحث کنیم .
 

shervin

ASP.net
کاربر قدیمی پرشین تولز
تاریخ عضویت
26 ژوئن 2005
نوشته‌ها
6,353
لایک‌ها
261
سن
39
محل سکونت
تهران
خب نظر من اینه که تو دیتا بیست تو قسمت مشخصات کاربر یه فیلد اضافه کن به اسم مثلا تکمیل عضویت بعد موقع ثبت نام اولیه با مثلا no پرش کن و موقع ثبت نام نهایی با yes بعد موقع لاگین چک کن اگه مقدار yes بود بره به مثلا home و اگه no بود به به صفحه ی تکمیل عضویت
کد خواصی هم نمیخواد یه select هست دیگه
کد:
    Dim takmil As String
        cm = New SqlCommand("select takmil from users where username=@username", cn)
        cm.Parameters.Add("@username", tusername.text)
        cn.Open()
        takmil = cm.ExecuteScalar
        cn.Close()
        If takmil = "yes" Then
            Response.Redirect("/home.aspx")
        Else
            Response.Redirect("/Takmil.aspx")
        End If
حالا شاید راه بهتری هم باشه
من این به ذهنم رسید
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
ممنون از این دوست عزیز !!!
خب این نظر اول بد نبود ایده جالبی بود ولی ما بهتر از این میخواهیم مثلا بریم از table اطلاعات تکمیلی خودمون بخونیم مثلا از یک store procedure در sql استفاده کنیم مثل GetInfo بعد بریم بخونیم از table دوستان دیگه یک راه غیر از راه دوستمون بگن کسایی که لایه ای کار کردن بیان لایه ای بحث کنن . اگر اقای شروین باز جچیز دیگه ای به ذهنش رسید بگه .اینجا دیگه گود هر کس بلده بیاد وسط !!!!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
ممنون سوال جالبی بود .
شروین بدون استفاده از سرویس ممبرشیپ خود دات نت 2 جواب داده ، که خوبحدث میزنم شما از ممبرشیپ استفاده میکنید چون به 2005 اشاره کردید . (احتمالا شروین به این دقت نکرده:blush: )
در MembershipUser پروپرتی داریم که معلو میکنه کاربر تایید شده یا نه !
اگر mysuser.IsApproved که خود mysuser وهله ای از MembershipUser اه true باشه میفهمیم که کاربر تایید شده .

خوب پس یه
کد:
<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
        </asp:Login>
که احتمالا از قبلا داریم فقط باید این رو بهش اضافه کنیم : (مثل بلایی )
کد:
 "OnAuthenticate="Login1_Authenticate


حالا میمونه برنامه نویسش : (به سرس صفحه تون اضافه کنید )
کد:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {
        MembershipUser mysuser = Membership.GetUser(Login1.UserName);
        if (mysuser.IsApproved)
            Response.Redirect("~/HomePage.aspx");
        else
            Response.Redirect("~/UnApprovedPage.aspx");
    }

باید یه همچین چیزایی بشه الان نمیتونم امتحانش کنم ولی احتمالا کار میکنه !
توضیح:
Login1.UserName نام کاربر رو از فرم میگیره
Membership.GetUser کاربر رو میسازه

بقشم که دیگه #QC اه ! ;)
(حالا این خودش چیه ماجرا داره :blush:
اولا که میخواستیم بگیم از اینجا به بعدش معلومه میگفتیم کیو بیسیک اه بعد یه بنده خدایی براش سوال شده بود اینا دارن #C مینوسین وسطش چطوری یهو Qbasic مینوسن ؟! همین شد که #QC اختراع شد :lol: )
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
خب این حرف به روز تر بود ولی ما مشکلمون اصلا رو create user نیست ما مشکلمون اینجاست که بریم چک کنیم اگر پروفایل فلان یوزر پر نشده باشه بره باز پروفایلش رو کامل پر کنه یا حد اقل اطلاعاتی که کامل نکرده رو کامل کنه ما تععید یوزر رو به چک کردن میزاریم از table . ببین مثلا من زمان لاگین مییام مینویسم زمانی که کاربر لاگین کرد بره از فلان table بخونه اگر member کامل نبود یعنی خالی بود با همون یوزری که ثبت نام اولیه رو انجام داده بریزه رو همون رکورد .
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
خوب برای فلید های اجباری پروفایلت ویلدیتور بذار در نتیجه تا فیلد های اجباری پر نشه فرم سابمیت نمیشه ، از اون طرف فقط وقتی mysuser.IsApproved رو true میکنی که این فرم سابمیت شده باشه .

اینطوری میتونی چک کنی که آیا کاربرت اون فرم رو پر کرده یا نه !
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
اقا من کدهایی رو که نوشته بودی رو اضافه کردم ولی ابجکت لاگین وقتی این کد رو اضافه کردم از کار افتاد و هر چی لاگین میکنم فقط تنظیم Destination Page Url ابجکت لاگینم کار میکنه و بدون اینکه منو به سیستم بشناسونه من رو ریدایرکت میکنه به صفحه defult و login status صفحه defult تغییری نمیکنه و وضعیت Login رو داره چیکار باید بکنم ؟؟؟
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
ابجکت لاگین کار نمیکنه واقعآ کسی نمیدونه؟؟
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به جای OnAuthenticate از OnLoggedIn استفاده کن !

OnAuthenticate قبل از اینکه عملیات لاگین شدن انجام بشه فراخونده میشه و قبل از اینکه لاگین بشی ریداریکت میشی ! ببین کار میکنه یا نه ؟! اگه کار نکرد ، باید یه پروژه تستی درست کنم تستش کنم ولی فکر میکنم دیگه کار کنه !
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
متآسفانه به مشکل خورد ؟؟؟ حالا چیکار کنم؟؟
 

iranidesign

کاربر تازه وارد
تاریخ عضویت
3 جولای 2006
نوشته‌ها
62
لایک‌ها
0
بله درسته !!!! ولی داخل فرم من کار نمیکنه دستوری رو که داده بودی نمیدونم واقعآ چیکار کنم بدجوری گیر کردم
راهی به نظرتون میرسه؟
 
بالا