PDA

View Full Version : سوال: هنگامی که کاربر loginکرد مشخصاتش در Sidbar بجای textboxهای کلمه کاربری و رمز عبور نمایان شود؟



Mitra_SHM
دوشنبه 14 فروردین 1391, 10:14 صبح
سلام دوستان
وب سایتی طراحی کردم که در سمت راست آن Sidbar قرار دارد. این وب سایت از فقط یک MasterPageاصلی استفاده کرده که در روت سایت قراردارد و سه سطح دسترسی دارد که هر کدام منوهای خاصی دارد. حال می خواهم هنگامی که کاربر یا ادمین لاگین شد بجای textboxی که در سمت راست است مشخصات شخص لاگین را ببیند.
نمیدونم که چگونه اطلاعات فرد لاگین شده را نگهداری کنم تا آن قسمت را مقداردهی کنم.
برای هر کاربر در سایتم فولدری ایجاد کرده ام که بتوانم آنها را براحتی مدیریت کنم مثل Admin,Customer , ...
آیا نیاز به MasterPageهای مختلف در فولدرهای ایجد شده برای هر کاربر دارم؟85073
کد نویسی مشخصات کاربر را چه قرار دهم؟
از همکاریتان قبلا سپاسگذارم

ahmad156
دوشنبه 14 فروردین 1391, 11:14 صبح
دوست عزیز یه راه غیر استاندارد همین استفاده از چند masterpage هست ولی راه بهتر استفاده از کنترل MultiView هست.
البته راه های جاوااسکریپتی هم هست!

vahidmoonline
دوشنبه 14 فروردین 1391, 12:04 عصر
سلام دوست عزیز شما باید از کنترول LoginView در تب Login واقع در ToolBox استفاده کنید که بصورت پیشفرض از دو قسمت AnonymousTemplate , LoggedInTemplate تشکیل شده مثلا :
مشخصاتش در Sidbar بجای textboxهای کلمه کاربری و رمز عبور نمایان شود؟با ید در AnonymousTemplate

در غیر اینصورت در المنت LoggedInTemplateکد بنویسد.

Mitra_SHM
چهارشنبه 16 فروردین 1391, 13:47 عصر
سلام دوستان
من از کامپوننت liginview و پیشفرضهاش استفاده کردم اما نمیدونم چجوری مشخصاتش رو نمایش بدم
تموم سایتم درست شده فقط همین مونده
لطفا کمکم کنید

Mitra_SHM
چهارشنبه 16 فروردین 1391, 13:59 عصر
یادم رفت بگم که از کامپوننت liginview و پیشفرضهاش استفاده کردم اما برای منوها. چون هر کاربری منوهای خاصی داره.
و sidbar سمت راست رو هم از Div استفاده کردم
آیا می توان از دو تا کامپوننت liginview استفاده کرد؟ که یکی رو برا منوها بذارم و دیگری رو برا sidbar؟
اگه کدنویسی می خواد چیه؟

niloofar21
چهارشنبه 16 فروردین 1391, 16:10 عصر
برای نمایش منوهای مختلف به کاربران مختلف از multiview استقاده کنید .یک کنترل مالتی ویو در master بذارین و داخلش به تعدادمنوهای کاربری که لازم دارین کنترل view قرار بدین و منوها را داخل view iهای مربوطه بیارین .و در code behind بنویسید که برای چه کاربری چه منویی (چه viewای) نمایش داده بشه .در مورد کدهای مربوط به multi view مشکلی بود بفرمایید

d_derakhshani
چهارشنبه 16 فروردین 1391, 16:43 عصر
برای منوها در یک روش مناسب: بهتر بود نوع کاربرهاتون رو استاتیک نمی گرفتید، و یک جدول UserGroup و یا Rol تعریف می کردید. از طرفی یک جدول خود ارجاع برای ذخیره آیتم های منو داشتی. یکی از فیلدهای جدول منو، نوع کاربر بود(در واقع ارجاع به جدول نوع کاربر).سپس هر نوع کاربری که Login می کرد تمامی آیتم های منو مربوط به اون نوع کاربر رو بار گذاری می کردید.
در روش دیگه(به صورت نیمه داینامیک-استاتیک):شما سه نوع منو خواهید داشت، برای هر کدوم یک فایل xml بسازید و ساختار منوها شون رو در اون تعریف کنید، سپس در برنامه فقط یک منو قرار بدید و بعد از Login کاربر، با توجه به نوع کاربر ،منو مربوطه رو با xml مناسب load کنید.
دقت کنید که با استفاده از XmlDataSource و بایند کردن منو به اون، بارگذاری آیتم های منو به صورت خودکار انجام می گیره و احتیاجی و نوشتن کد نیست

Mitra_SHM
چهارشنبه 16 فروردین 1391, 16:59 عصر
اگه از Multiview استفاده کنم مشخصات کاربر وارد شده رو چطوری در سمت راست قرار بدم؟ یعنی باید برای نمایش مشخصاتش از Loginview استفاده کنم؟
در سایتم 3 سطح دسترسی دارم با 3 منوی مختلف. می تونم از multi view استفاده کنم اما مشکل من نمایش مشخصات کاربره.
توی دکمه login این کدها رو نوشتم اما چون به محض فشردن دکمه صفحه به جای دیگر ی پاس داده میشه(که برای هر کاربری مختلف هست) دیگه صفحه اون طوری که میخوام نمایش داده نمیشه


DataSet dsUser = DataLayer.Users.SelectRowByUsername(txtUsername.Te xt);
DataRow drUser = dsUser.Tables["Users"].Rows[0];
imgUser.ImageUrl = drUser["UsersImageUrl"].ToString();

txtPassword.Visible = txtUsername.Visible = false;
lblPass.Visible = lblUsername.Visible = false;
chkRemember.Visible = false;
btnLogin.Visible = btnRegister.Visible = false;
lblName.Visible = lblMessage.Visible = imgUser.Visible = true;
FormsAuthentication.RedirectFromLoginPage(txtUsern ame.Text, chkRemember.Checked);


اما هیچ کدوم از ابزارهایی که visible آنها را false کردم اعمال نمی شن.
حالا اگه از multiview استفاده کنم کجا و چه کدی باید بنویسم؟

niloofar21
چهارشنبه 16 فروردین 1391, 23:14 عصر
میترا جان با استفاده از multi view نیازی به false کردن visible نداری.عملا چند تا view مختلف داری.
فقط کافیه کنترل miulti view را روی صفحه بیاری وداخلش کنترل view را به تعداد لازم بذاری.در هر viewهم که منوی مربوطه را قرار میدی.در code behind صفحه ات یه شرط میذاری که اگر فلان نوع کاربر مثلا admin وارد شد view مربوط به آن نمایش داده بشه.به این شکل:
if (UserType == "admin")
{
MultiView1.ActiveViewIndex = 0;
}

0 اولین view را نمایش میدهد .برای نمایش view های بعدی این عدد مرتبا یکی اضافه میشه .به همین سادگی.
این برای منوهات .برای login خود user و نمایش مشخصاتش هم که از کنترل loginview یا session استفاده کن .اگر از login view و رولهای asp استفاده کنی باید صفحات مربوط به هر user در یک folder قرار بگیرد .اگر نمیخوای به این شکلstatic باشه باید از session یا چیز دیگه ای استفاده کنی .یعنی برای هر کدام از مشخصات کاربر یک Session در صفحه login ایجاد کنی.

Mitra_SHM
دوشنبه 28 فروردین 1391, 20:35 عصر
دوست عزیزم
از هر دو روش استفاده کردم
منوها رو می تونم با loginview نمایش بدم که برای کاربران مختلف، متفاوت باشه اما نمی دونم چرا مشخصات کاربر رو نمی تونم
می خوام از کاربر، نام و نام خانوادگی و عکس کاربر بجای قسمت Login نمایش داده شه اما با اینکه طبق گفته شما از login view استفاده کردم باز هم نشد. در اونجا از کنترل Image برای نمایش تصویر کاربر استفاده کردم و در قسمت image url این کد رو وارد کردم
ImageUrl='<%# Eval("UsersImageUrl")
اما باز هم جوابی نگرفتم
حتما دارم یه جایی رو اشتباه می کنم ولی نمیدونم کجا
کمکم کنید