s.mahmood
یک شنبه 20 دی 1388, 02:49 صبح
سلام
همین طور که از اسم تاپیک معلوم میخوام آموزش redirect شدن کاربر بعد از لوگین به صفحه قبلی که داشته میدیده رو بزارم
این کار به سه روش انجام میشه
Method 1 – Using a static variable and UrlReferrer
Method 2 – Using Javascript
Method 3 – Using ViewState
خوب زیاد سرتون رو درد نمیارمو کدها رو میزارم
Method 1 – Using a static variable and UrlReferrer
C#
// static variable
static string prevPage = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
prevPage = Request.UrlReferrer.ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect(prevPage);
}
VB.NET
'static variable
Private Shared prevPage As String = String.Empty
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If (Not IsPostBack) Then
prevPage = Request.UrlReferrer.ToString()
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Redirect(prevPage)
End Sub
Method 2 – Using Javascript
C#
protected void Page_Load(object sender, EventArgs e)
{
Button2.Attributes.Add("onClick", "javascript:history.back(); return false;");
}
protected void Button2_Click(object sender, EventArgs e)
{
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Button2.Attributes.Add("onClick", "javascript:history.back(); return false;")
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
End Sub
Method 3 – Using ViewState
C#
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
ViewState["RefUrl"] = Request.UrlReferrer.ToString();
}
}
protected void Button3_Click(object sender, EventArgs e)
{
object refUrl = ViewState["RefUrl"];
if (refUrl != null)
Response.Redirect((string)refUrl);
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If (Not IsPostBack) Then
ViewState("RefUrl") = Request.UrlReferrer.ToString()
End If
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim refUrl As Object = ViewState("RefUrl")
If Not refUrl Is Nothing Then
Response.Redirect(CStr(refUrl))
End If
End Sub
من خودم از روش اول استفاده کردم اما این مدل با دستور Server.Transfer یکم مشکل داره
من از Request.QueryString استفاده کردم که خیلی خوبم جواب میده
برای استفاده به 2 تا صفحه نیاز داریم
صفحه 1 مثلا admin.aspx
و صفحه دوم که صفحه login.aspx هست.حتما تو این صفحه از کامپوننت login استفاده کنید
این کدها مربوط به صفحه admin.aspx هست:
protected void Page_Load(object sender, EventArgs e)
{
if (User.IsInRole("admin") == false)
{
string url = "login.aspx?";
url += "go=" + "admin.aspx";
Server.Transfer(url);
}
}
واین کدها مربوط به صفحه login.aspx
protected void Page_Load(object sender, EventArgs e)
{
Login1.DestinationPageUrl = Request.QueryString["go"];
}
امیدوارم که این آموزش مورد توجه قرار گرفته باشه.
منبع قسمت اول آموزش سایت http://www.dotnetcurry.com هست
و قسمت دومم هم از خودم بود:لبخند:
همین طور که از اسم تاپیک معلوم میخوام آموزش redirect شدن کاربر بعد از لوگین به صفحه قبلی که داشته میدیده رو بزارم
این کار به سه روش انجام میشه
Method 1 – Using a static variable and UrlReferrer
Method 2 – Using Javascript
Method 3 – Using ViewState
خوب زیاد سرتون رو درد نمیارمو کدها رو میزارم
Method 1 – Using a static variable and UrlReferrer
C#
// static variable
static string prevPage = String.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
prevPage = Request.UrlReferrer.ToString();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect(prevPage);
}
VB.NET
'static variable
Private Shared prevPage As String = String.Empty
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If (Not IsPostBack) Then
prevPage = Request.UrlReferrer.ToString()
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Redirect(prevPage)
End Sub
Method 2 – Using Javascript
C#
protected void Page_Load(object sender, EventArgs e)
{
Button2.Attributes.Add("onClick", "javascript:history.back(); return false;");
}
protected void Button2_Click(object sender, EventArgs e)
{
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Button2.Attributes.Add("onClick", "javascript:history.back(); return false;")
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
End Sub
Method 3 – Using ViewState
C#
protected void Page_Load(object sender, EventArgs e)
{
if( !IsPostBack )
{
ViewState["RefUrl"] = Request.UrlReferrer.ToString();
}
}
protected void Button3_Click(object sender, EventArgs e)
{
object refUrl = ViewState["RefUrl"];
if (refUrl != null)
Response.Redirect((string)refUrl);
}
VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If (Not IsPostBack) Then
ViewState("RefUrl") = Request.UrlReferrer.ToString()
End If
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim refUrl As Object = ViewState("RefUrl")
If Not refUrl Is Nothing Then
Response.Redirect(CStr(refUrl))
End If
End Sub
من خودم از روش اول استفاده کردم اما این مدل با دستور Server.Transfer یکم مشکل داره
من از Request.QueryString استفاده کردم که خیلی خوبم جواب میده
برای استفاده به 2 تا صفحه نیاز داریم
صفحه 1 مثلا admin.aspx
و صفحه دوم که صفحه login.aspx هست.حتما تو این صفحه از کامپوننت login استفاده کنید
این کدها مربوط به صفحه admin.aspx هست:
protected void Page_Load(object sender, EventArgs e)
{
if (User.IsInRole("admin") == false)
{
string url = "login.aspx?";
url += "go=" + "admin.aspx";
Server.Transfer(url);
}
}
واین کدها مربوط به صفحه login.aspx
protected void Page_Load(object sender, EventArgs e)
{
Login1.DestinationPageUrl = Request.QueryString["go"];
}
امیدوارم که این آموزش مورد توجه قرار گرفته باشه.
منبع قسمت اول آموزش سایت http://www.dotnetcurry.com هست
و قسمت دومم هم از خودم بود:لبخند: