PDA

View Full Version : سوال: تعیین انتقال کاربر به صفحات جدا به وسیله نقشها



hashemi85sep
پنج شنبه 06 خرداد 1389, 07:38 صبح
سلام دوستان
میخواستم بدونم چطور باید توی web.config تعیین کنم که مثلا وقتی مدیر میخواد وارد بشه باید بره به صفحه مدیر یا معلم که میخواد وارد بشه باید به صفحه معلم وارد بشه و کاربر عادی هم همینطور ...؟
ممنون میشم راهنمایی کنین
... با تشکر

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 09:52 صبح
سلام دوستان
میخواستم بدونم چطور باید توی web.config تعیین کنم که مثلا وقتی مدیر میخواد وارد بشه باید بره به صفحه مدیر یا معلم که میخواد وارد بشه باید به صفحه معلم وارد بشه و کاربر عادی هم همینطور ...؟
ممنون میشم راهنمایی کنین
... با تشکر


سلام ،

تا جايي كه من اطلاع دارم به اين صورت كه شما فرموديد امكان پذير نيست .

ميتونيد يك متد Public داشته باشيد كه وظيفه تشخيص Role و ناوبري به صفحه مربوطه رو داشته باشه . و هرگاه كه نياز هست اين متد رو فراخواني كنيد .

شاد باشيد

Peyman.Gh
پنج شنبه 06 خرداد 1389, 09:55 صبح
چرا در Web.Config تعیین کنید ؟!

hashemi85sep
پنج شنبه 06 خرداد 1389, 10:05 صبح
سلام ،

تا جايي كه من اطلاع دارم به اين صورت كه شما فرموديد امكان پذير نيست .

ميتونيد يك متد Public داشته باشيد كه وظيفه تشخيص Role و ناوبري به صفحه مربوطه رو داشته باشه . و هرگاه كه نياز هست اين متد رو فراخواني كنيد .

شاد باشيد

سلام دوست عزیز
میشه یه نمونه کد بزارین؟
اولین پروژه منه ، امروز هم باید تحویل بدم
اگه میشه راهنمایی کنید

Peyman.Gh
پنج شنبه 06 خرداد 1389, 10:07 صبح
از Web Site Administration Tool استفاده میکنید ؟

hashemi85sep
پنج شنبه 06 خرداد 1389, 10:07 صبح
چرا در Web.Config تعیین کنید ؟!
من برای همه یه صفحه ورود دارم
توی propertis کنترل login ، آدرس صفحه مقصد رو به یه صفحه میشه داد و به خاطر همین هم وقتی مدیر میخواد وارد بشه به همون صفحه ای میره که کاربرا میره ..
من بیشتر از این نمیدونم
لطفا راهنمایی کنید
ممنون

hashemi85sep
پنج شنبه 06 خرداد 1389, 10:12 صبح
از Web Site Administration Tool استفاده میکنید ؟
بله دوست عزیز

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 10:20 صبح
من برای همه یه صفحه ورود دارم
توی propertis کنترل login ، آدرس صفحه مقصد رو به یه صفحه میشه داد و به خاطر همین هم وقتی مدیر میخواد وارد بشه به همون صفحه ای میره که کاربرا میره ..
من بیشتر از این نمیدونم
لطفا راهنمایی کنید
ممنون

شما لازم نبود اين همه كار رو بكنيد . در واقع اگر گفتم يك متد پابليك ايجاد كنيد به خاطر اين بود كه اين همه صفحه ورود ايجاد نكنيد .

حالا كه اين كار رو كرديد نيازي به متد عمومي نيست .

هنگام Authenticate كردن كاربران از متد IsInRole استفاده كنيد .

if ( User.IsInRole("نام نقشي كه مشخص كرديد "))
‍{
Response.Redirect("صفحه مورد نظر");
‌‌‍‌}
else
{
//To Do
}
شاد باشيد

hashemi85sep
پنج شنبه 06 خرداد 1389, 10:24 صبح
شما لازم نبود اين همه كار رو بكنيد . در واقع اگر گفتم يك متد پابليك ايجاد كنيد به خاطر اين بود كه اين همه صفحه ورود ايجاد نكنيد .

حالا كه اين كار رو كرديد نيازي به متد عمومي نيست .

هنگام Authenticate كردن كاربران از متد IsInRole استفاده كنيد .

if ( User.IsInRole("نام نقشي كه مشخص كرديد "))
‍{
Response.Redirect("صفحه مورد نظر");
‌‌‍‌}
else
{
//To Do
}
شاد باشيد

خب حالا اگه بخوایم همه اینا با یه صفحه ورود ، وارد بشن باید چه کاری رو انجام بدیم؟

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 10:44 صبح
خب حالا اگه بخوایم همه اینا با یه صفحه ورود ، وارد بشن باید چه کاری رو انجام بدیم؟

يك راست بگو كدش مورد نظر رو لازم دارم .:چشمک:
از آخر مجبورم كردي Visual Studio رو آتيش كنم :لبخند:
در متد Authenticate كنترل لاگين مورد نظر اينطور بنويس :
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
string username = Login1.UserName;
string password = Login1.Password;
if (FormsAuthentication.Authenticate(username, password))
{
if (!User.IsInRole("RoleName1"))
{
//Your Logic
}
}
}

شاد باشيد

hashemi85sep
پنج شنبه 06 خرداد 1389, 11:10 صبح
یه مشکل دیگه
یوزرنیم مدیر رو اصلانمیشناسه و تایید نمیکنه
وقتی یه کاربر رو ثبت نام میکنم اصلا به صفحه مورد نظر ارسال نمیکنه.. ثبت میشه ولی ارسال نمیکنه شاید آدرس رو بهش بد دادم

response.redirect("~/role_student/Profile.aspx")
بعد از بستن صفحه وقتی دوباره اجرا میکنم کاربر قبلی رو نمیشناسه..

همه این کاربرا توی Web Site Administration Tool ثبت شدن ...

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:ع بانی++:

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 11:16 صبح
یه مشکل دیگه
یوزرنیم مدیر رو اصلانمیشناسه و تایید نمیکنه
وقتی یه کاربر رو ثبت نام میکنم اصلا به صفحه مورد نظر ارسال نمیکنه.. ثبت میشه ولی ارسال نمیکنه شاید آدرس رو بهش بد دادم

response.redirect("~/role_student/Profile.aspx")بعد از بستن صفحه وقتی دوباره اجرا میکنم کاربر قبلی رو نمیشناسه..

همه این کاربرا توی Web Site Administration Tool ثبت شدن ...

؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:ع بانی++:
كمي حوصله كن دوست من ، برنامه نويسي كه با عجله نميشه ،

فكر ميكنم اين مشكل از جايي ناشي ميشه كه شما Copy and Past ميكنيد بدون اينكه به منطق توجه كنيد .

من گفته بودم :

if (!User.IsInRole("RoleName1"))

يعني اگر كاربر در Role مربوطه نيست ، يه چيزي به كاربر نشون بده و هيچكاري نكن و ...

مهم متدها و نحوه استفاده از اونهاست ، ديگه منطق با خودته .

انشاالله كه مشكلت حل شه و ...

Peyman.Gh
پنج شنبه 06 خرداد 1389, 11:18 صبح
شما باید هنگام ثبت نام به کاربران نقش بدهید.

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 11:23 صبح
شما باید هنگام ثبت نام به کاربران نقش بدهید.


من فرض رو بر اين گرفته بودم كه اين دوست خوشتيپ مون اين كار رو كرده ديگه . پيمان جون خودت راهنمايش كن ديگه ، من بايد برم .

hashemi85sep
پنج شنبه 06 خرداد 1389, 11:26 صبح
كمي حوصله كن دوست من ، برنامه نويسي كه با عجله نميشه ،

فكر ميكنم اين مشكل از جايي ناشي ميشه كه شما Copy and Past ميكنيد بدون اينكه به منطق توجه كنيد .

من گفته بودم :

if (!User.IsInRole("RoleName1"))

يعني اگر كاربر در Role مربوطه نيست ، يه چيزي به كاربر نشون بده و هيچكاري نكن و ...

مهم متدها و نحوه استفاده از اونهاست ، ديگه منطق با خودته .

انشاالله كه مشكلت حل شه و ...
ممنون از اشارتون...
دست شما درد نکنه

hashemi85sep
پنج شنبه 06 خرداد 1389, 11:30 صبح
شما باید هنگام ثبت نام به کاربران نقش بدهید.

سلام دوست عزیز
من موقعی که کاربر خودش میخواد ثبت نام کنه این کد رو پشت creat user wizard نوشتم :

Rolse.AddUserToRole(CreatUserWizard1.UserName, "user")

مگه این کد نقش کاربر رو تعیین نمیکنه؟

Peyman.Gh
پنج شنبه 06 خرداد 1389, 11:40 صبح
اگر از CreateUserWizard استفاده میکنید میتوانید در رویداد کلیک ContinueButton به کاربر ثبت نام شده نقش نسبت دهید.
protected void ContinueButton_Click(object sender, EventArgs e)
{
Roles.AddUserToRole(CreateUserWizard1.UserName, "Admin");
Response.Redirect("default.aspx");
}

موفق باشید.

awwex2007
پنج شنبه 06 خرداد 1389, 13:32 عصر
فکر کنم به بخش آموزش های ویدویی انجمن بخش asp سر بزنی چیز های خوبی پیدا کنی .مخصوصا آموزش های مربوط به login .!!حتما سر بزن!