PDA

View Full Version : ماندن کاربر در همان صفحه اي که بوده بعد از لوگين



bftarane
شنبه 11 آذر 1391, 19:43 عصر
سلام.
فرض کنيد يه صفحه پرسش و پاسخ داريم که فقط اعضا مي تونن سوال بپرسن توش.
خوب فرضاً يه کاربر ميهمان بدون لوگين کردن اومده به صفحه پرسش و پاسخ حالا وقتي لوگين مي کنه
چطور ميشه در همون صفحه پرسش و پاسخ بمونه؟
اين کدهاي دکمه لوگين من هست.

if (!Page.User.Identity.IsAuthenticated)
{
if (GetMemberAuthenticate(txt_uname.Text, FormsAuthentication.HashPasswordForStoringInConfig File(txt_pass.Text, "MD5")))
{
string role = GetMemberRoleByID(txt_uname.Text);
DateTime expiration;
if (chk_rememberme.Checked)
{
expiration = DateTime.Now.AddMonths(1);
}
else
{
expiration = DateTime.Now.AddMinutes(30);
}
FormsAuthenticationTicket AuthTicket = new FormsAuthenticationTicket(1, txt_uname.Text, DateTime.Now, expiration, false, role);
string encryptedTicket = FormsAuthentication.Encrypt(AuthTicket);

HttpCookie AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);


Response.Cookies.Add(AuthCookie);
string[] temp = role.Split(',');
for (int i = 0; i < temp.Length; i++)
{
if (temp[i] == "Admin")
{
Response.Redirect("Page.aspx");
}
}

Response.Redirect(FormsAuthentication.GetRedirectU rl(txt_uname.Text, chk_rememberme.Checked));
}
else
{
lbl_login.Visible = true;
}
}
else
{
lbl_login.Visible = true;
lbl_login.Text = "کاربر محترم شما هم اکنون با نام کاربري ديگري وارد شده ايد. لطفاً ابتدا خارج شويد";
}

ya30ien2
شنبه 11 آذر 1391, 19:48 عصر
میتونید از سشن استفاده کنید و آدرس فعلی رو قبل از چک کردن نام کاربری و پسورد درون یک سشن بریزید و در صورت صحت و وجود سشن به صفحه بره در غیره این صورت به صفحه اصلی بره

malloc
شنبه 11 آذر 1391, 21:57 عصر
سلام.
فرض کنيد يه صفحه پرسش و پاسخ داريم که فقط اعضا مي تونن سوال بپرسن توش.
خوب فرضاً يه کاربر ميهمان بدون لوگين کردن اومده به صفحه پرسش و پاسخ حالا وقتي لوگين مي کنه
چطور ميشه در همون صفحه پرسش و پاسخ بمونه؟
اين کدهاي دکمه لوگين من هست.

if (!Page.User.Identity.IsAuthenticated)
{
if (GetMemberAuthenticate(txt_uname.Text, FormsAuthentication.HashPasswordForStoringInConfig File(txt_pass.Text, "MD5")))
{
string role = GetMemberRoleByID(txt_uname.Text);
DateTime expiration;
if (chk_rememberme.Checked)
{
expiration = DateTime.Now.AddMonths(1);
}
else
{
expiration = DateTime.Now.AddMinutes(30);
}
FormsAuthenticationTicket AuthTicket = new FormsAuthenticationTicket(1, txt_uname.Text, DateTime.Now, expiration, false, role);
string encryptedTicket = FormsAuthentication.Encrypt(AuthTicket);

HttpCookie AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);


Response.Cookies.Add(AuthCookie);
string[] temp = role.Split(',');
for (int i = 0; i < temp.Length; i++)
{
if (temp[i] == "Admin")
{
Response.Redirect("Page.aspx");
}
}

Response.Redirect(FormsAuthentication.GetRedirectU rl(txt_uname.Text, chk_rememberme.Checked));
}
else
{
lbl_login.Visible = true;
}
}
else
{
lbl_login.Visible = true;
lbl_login.Text = "کاربر محترم شما هم اکنون با نام کاربري ديگري وارد شده ايد. لطفاً ابتدا خارج شويد";
}

کدهای جالبی دارید معلومه حرفه ای هستید . والا من که هیچوقت کدهام قشنگ نیستن:افسرده:

این کد رو تو پروژه یکی از دوستان دیدم که برای بازگشت استفاده میشه ببین بدردت میخوره

ViewState["back"] = Request.UrlReferrer;

bftarane
شنبه 11 آذر 1391, 22:20 عصر
سلام. نه حرفه اي نيستم. اون کد رو هم بيشترش از سايت هاتولرن استفاده کردم و بر حسب نياز و با کمک گرفتن از ديگران تغييراتي داده شده.
راستي من طبق راهنمايي دوست گرامي ya30in2 عمل کردم و نتيجه گرفتم يعني در رويداد لود صفحه پرسش و پاسخ کد زير رو نوشتم

Session["CurrentUrl"] = System.Web.HttpContext.Current.Request.Url;
و در رويداد لوگين کد زير رو اضافه کردم


if (Session["CurrentUrl"] != null)
{
Response.Redirect(Session["CurrentUrl"].ToString());
}
قبل از
Response.Redirect(FormsAuthentication.GetRedirectU rl(txt_uname.Text, chk_rememberme.Checked));

Mohamad1362
شنبه 11 آذر 1391, 23:52 عصر
اگه از FormsAuthentication.RedirectFromLoginPage استفاده کنی ، مستقیم میری به صفحه درخواست شده توسط کاربر
کلا از Session تو سایتت استفاده نکن ، به مشکلاتش نمی ارزه

bftarane
یک شنبه 12 آذر 1391, 09:37 صبح
سلام. من از لينک زير استفاده کردم براي تشخيص هويت
http://how2learnasp.net/article.aspx?code=85c9dd50-0935-48c2-9039-949da6b42f8d
و طبق اين جملاتي که اونجا نوشته يعني:

(دقت نماييد که ديگر از متد FormsAuthentication.RedirectFromLoginPage استفاده نکرديم و هدايت کاربر را به صورت

نوشتيم چرا که متد قبل قابليت شخصي سازي و اضافه نمودن نقش ها را دارا نمي باشد.)
نمي تونستم از کدي که شما گفتيد استفاده کنم.