ورود

View Full Version : سوال: هدایت کاربر پس از لاگین به صفحه مربوطه



aboulfazl950
سه شنبه 03 تیر 1393, 19:56 عصر
سلام،
دوستان با استفاده از roleprovider نقش کاربران را بدست می آورم.
می خواهم پس از لاگین، کاربران عادی به User/default.aspx
و مدیر سایت به admin/default.aspx هدایت شود. چکار کنم؟

sun2rise
سه شنبه 03 تیر 1393, 20:07 عصر
خب یه شرط میذاری اگه مدیر بود آدرس مربوطه باز بشه اگر کاربر بود آدرس مربوط به کاربر باز بشه
برای هدایت به صفحه دیگر هم از کد زیر استفاده کنید

response.redirect("admin/default.aspx")

aroshanzamir
سه شنبه 03 تیر 1393, 22:10 عصر
سلام دوست من :
شما این دستور را که بنویسی چک می کنه که آیا این کاربر در این نقش می باشد یا نه ؟

User.IsInRole("roleName")


بعد از اون شما پیاده سازی ها را اینجا انجام داده باشی : چون بعد از دستور بالا وارد این متد می شود :


public override string[] GetRolesForUser(string userName)
{
}

aboulfazl950
چهارشنبه 04 تیر 1393, 04:40 صبح
خب کجا بنویسم؟ پس از احراز هویت یا بعد از لاگین به یک صفحه میانی بفرستم و از آنجا این کار را بکنم.

hamid_0341
چهارشنبه 04 تیر 1393, 06:57 صبح
خب کجا بنویسم؟ پس از احراز هویت یا بعد از لاگین به یک صفحه میانی بفرستم و از آنجا این کار را بکنم.

هرجایی که نیاز داری کاربر عادی و مدیر با هم فرق داشته باشند

aroshanzamir
چهارشنبه 04 تیر 1393, 08:40 صبح
خب کجا بنویسم؟ پس از احراز هویت یا بعد از لاگین به یک صفحه میانی بفرستم و از آنجا این کار را بکنم.


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

اگر بخواهی به صورت کامل توضیح بدم باید بدونم بخش های ادمین را چطوری طراحی کردید ......


موفق و پیروز باشی

aboulfazl950
چهارشنبه 04 تیر 1393, 10:05 صبح
طراحی ها را انجام داده ام ولی وقتی کاربر عادی صفحه مدیریت ادمین را بزند صفحه لاگین می آید و پس از واردنمودن رمز عبور در صفحه لاگین می ماند و هیچ اتفاقی نمی افتد. می خواهم کمی زیباتر باشد و کاربر عادی به صفحه شما اجازه دسترسی ندارید، هدایت شود. ولی اگر ادمین بود به صفحه مدیریت وارد شود. واگر کاربر عادی صفحه مدیریت خودش را صدا زده بود به صفحه خودش هدایت شود.

aboulfazl950
چهارشنبه 04 تیر 1393, 10:43 صبح
این کد صفحه لاگینم:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;


namespace MyProject
{
public partial class Login : System.Web.UI.Page
{
MyEntities Context = new MyEntities();
protected void Page_Load(object sender, EventArgs e)
{


}


protected void Button1_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, CheckBox1.Checked);

}

}


protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = (from u in Context.Users
where u.UserName == txtUserName.Text
where u.Password == txtPass.Text
select u).Any();
}
}
}



این هم کد صفحه redirect


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace MyProject
{
public partial class Redirect : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (User.IsInRole("admin"))
{
Response.Redirect("~/Admin/Default.aspx");
}
else if (User.IsInRole("user"))
{
Response.Redirect("~/User/Default.aspx");
}
else
{
Response.Redirect("~/Default.aspx");
}
}
}
}

aboulfazl950
چهارشنبه 04 تیر 1393, 12:25 عصر
یافتم.

در پیج لود لاگین نوشتم:



if (!Page.IsPostBack)
{


if (Request.IsAuthenticated && !string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))


Response.Redirect("~/AccessDenied.aspx");
}