PDA

View Full Version : مبتدی: هدایت به صفحه مورد نظر



sara70
یک شنبه 14 شهریور 1389, 20:41 عصر
سلام دوستان

برای دسترسی به بعضی از صفحات کاربر باید ابتدا نام کاربری و کلمه عبور را مارد کرده و سپس به صفحه مورد نظر هدایت شود. برای این کار چه دستوری داریم؟
از کد زیر استفاده کردم . کار نکرد. در ضمن برای ورود کاربران از Session استفاده کرده ام.



FormsAuthentication.RedirectFromLoginPage(TextBox1 .Text, false);

Alireza_Salehi
یک شنبه 14 شهریور 1389, 23:45 عصر
Response.Redirect

sara70
دوشنبه 15 شهریور 1389, 21:21 عصر
با استفاده از Response.Redirect باید آدرس یک صفحه خاص را وارد کرد.
اما من می خواهم کاربر به هر صفحه ای که قبل از هدایت شدن به صفحه login می خواسته وارد بشه،با وارد کردن نام کاربری و کلمه عبور، به اونجا هدایت بشه.
لطفا راهنمایی

Behrouz_Rad
دوشنبه 15 شهریور 1389, 22:06 عصر
اگر از Forms Authentication استفاده می کنی، یک Query String با نام ReturnUrl به طور خودکار به URL متصل میشه که مقدارش، آدرس منبعی هست که کاربر قصد داشته بدون تصدیق هویت بهش دسترسی داشته باشه. اگر هم این Query String وجود نداشت که مسلماً کاربر مستقیماً به صفحه ی لوگین اومده.

موفق باشید.

sara70
دوشنبه 15 شهریور 1389, 22:23 عصر
اگر از Forms Authentication استفاده می کنی، یک Query String با نام ReturnUrl به طور خودکار به URL متصل میشه که مقدارش، آدرس منبعی هست که کاربر قصد داشته بدون تصدیق هویت بهش دسترسی داشته باشه. اگر هم این Query String وجود نداشت که مسلماً کاربر مستقیماً به صفحه ی لوگین اومده.

موفق باشید.

دوست عزیز برای ورود به سایت از Session استفاده می کنم . FormsAuthentication کار نکرد. راهی هست تا قبل از وارد شدن به صفحه login آدرس صفحه مورد نظر را ذخیره کنم و بعد کاربر را به آنجا هدایت کنم؟

Vahid_moghaddam
دوشنبه 15 شهریور 1389, 23:02 عصر
دوست عزیز برای ورود به سایت از Session استفاده می کنم . FormsAuthentication کار نکرد. راهی هست تا قبل از وارد شدن به صفحه login آدرس صفحه مورد نظر را ذخیره کنم و بعد کاربر را به آنجا هدایت کنم؟
توصیه: از forms authentication استفاده کنید.

شما در صفحه ای که سطح دسترسی براش تعریف کردید، چک می کنید آیا session مقدار داره یا نه. اگه شرایط احراز هویت برقرار نبود، اون رو ارجاع می دید به صفحه login. در این ارجاع، آدرس صفحه جاری رو به عنوان یه پارامتر در query string قرار بدید و بعد از login کردن، redirect کنید به آدرسی که در query string مشخص شده. مثلا:
در صفحه ای که کابر رو می فرستید به صفحه login

Response.Redirect("login.aspx?url=page.aspx");

mahmood1000
دوشنبه 15 شهریور 1389, 23:34 عصر
سلام دوستان

برای دسترسی به بعضی از صفحات کاربر باید ابتدا نام کاربری و کلمه عبور را مارد کرده و سپس به صفحه مورد نظر هدایت شود. برای این کار چه دستوری داریم؟
از کد زیر استفاده کردم . کار نکرد. در ضمن برای ورود کاربران از Session استفاده کرده ام.



FormsAuthentication.RedirectFromLoginPage(TextBox1 .Text, false);


شما ابتدا این کد رو توی کانفیگ وارد کن ، این کد صفحه URL رو مشخص میکنه

<authentication mode="Forms">
<forms name="name" loginUrl="~/login.aspx?access=denied" />
</authentication>

بعد صفحاتی که میخوای کاربر قبل از ورود حتما Login شده باشد را تو یه Folder مشخص انتقال بده و واسش یه کانفیگ درست این کد رو توش انتقال بده

<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
<deny roles="contractor, employee, manager" />
<allow roles="administrator" />
</authorization>
</system.web>
</configuration>
contractor, employee, manager و administrator رولها هستند که بسته به تعریف شما میباشد.

archDevil
سه شنبه 16 شهریور 1389, 01:22 صبح
با استفاده از Response.Redirect باید آدرس یک صفحه خاص را وارد کرد.
اما من می خواهم کاربر به هر صفحه ای که قبل از هدایت شدن به صفحه login می خواسته وارد بشه،با وارد کردن نام کاربری و کلمه عبور، به اونجا هدایت بشه.
لطفا راهنمایی
سلام
یک راه دیگه اینکه کدتو با این الگوریتم بنویسی که کاربر توی هر صفحه ای برای وارد کردن user و pass رفت آدرس اون صفحه رو توی Session ذخیره کنی و زمانی که user و pass درست بود به همون آدرس توی Session ارجاع بدی.

sara70
سه شنبه 16 شهریور 1389, 12:53 عصر
اول از همه دوستان تشکر می کنم.


توصیه: از forms authentication استفاده کنید.

دلیل این توصیه چیست؟ از نظر امنیتی بهتره؟

شما در صفحه ای که سطح دسترسی براش تعریف کردید، چک می کنید آیا session مقدار داره یا نه. اگه شرایط احراز هویت برقرار نبود، اون رو ارجاع می دید به صفحه login. در این ارجاع، آدرس صفحه جاری رو به عنوان یه پارامتر در query string قرار بدید و بعد از login کردن، redirect کنید به آدرسی که در query string مشخص شده. مثلا:
در صفحه ای که کابر رو می فرستید به صفحه login

Response.Redirect("login.aspx?url=page.aspx");

من با query string آشنایی ندارم. میشه یک مثال بگذارید که چگونه آدرس صفحه را درون آن بگذارم. تشکر

Vahid_moghaddam
سه شنبه 16 شهریور 1389, 13:12 عصر
یکی از روش های انتقال اطلاعات بین صفحه ها، query string هست. هر query شامل یک key و value می شه. مثلا:


url=page.aspx
که url در اینجا key هست. query string از آدرس با یک ? جدا می شه. در واقع با یک ? بعد از آدرس نوشته می شه. در مورد مساله شما، ابتدا آدرس صفحه جاری (صفحه ای که کاربر باید مجاز باشه) در query string قرار می گیره و کاربر می ره به صفحه login. در صفحه login اگه کاربر احراز هویت شد، بر می گرده به آدرسی که در query string ذخیره شده.

در صفحه جاری:

protected void Page_Load(object sender, EventArgs e)
{
.
.
.
string uri=Request.Url.AbsoluteUri;
Response.Redirect("Login.aspx?uri="+uri);
}

در صفحه login بعد از احراز هویت:

string uri=string.Empty;
uri=Request.QueryString["uri"];
if (uri!=null)
Response.Redirect(uri);

rana-writes
سه شنبه 16 شهریور 1389, 14:30 عصر
سلام
میتونین این کد رو هم استفاده کنین:


if (Session["UserName"] != null)
{

}
else
{
Response.Redirect("~/login.aspx");
}

کدها رو توی پیج لود بنویسین
موفق باشین