PDA

View Full Version : سوال: redirect بعد از تشخیص هویت



htmbarnamenevisl
پنج شنبه 20 خرداد 1389, 06:27 صبح
سلام
من تو سایتم یه پوشه ادمین دارم که داخل اون پوشه یه صفحه لاگین هست و فردی که وارد سایت شده باید برای ورود به بخش مدیریت لاگین کنه.کدایی که تو وب کانفیگ نوشتم اینه



<authentication mode="Forms">
<forms name="Main" loginUrl="~/Admin/Login.aspx" defaultUrl="~/Admin/Index.aspx" >
<credentials passwordFormat="Clear">
</credentials>
</forms>
</authentication>

این کدیه که تو صفحه Login نوشتم تابع Search_User در دیتابیس به دنبال فرد مورد نظر میگرده




object retval = Search_User(Username = UserName.Text, Password1 = Password.Text);
if (retval != null)
{

lblError.Visible = false;
FormsAuthentication.RedirectFromLoginPage(UserName .Text,false);

}

else
{

lblError.Visible = true;

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

Response.Redirect(Request.Url.ToString());

اما مشکل اینه که تو URL : اینطوری میشه
http://localhost:7561/W2/Admin/Login.aspx?ReturnUrl=/W2/Admin/AdminDeleteNews.aspx (http://localhost:7561/W2/Admin/Login.aspx?ReturnUrl=/W2/Admin/AdminDeleteNews.aspx)

درواقع من میخواستم به صفحه AdminDeleteNews.aspx بره ولی اینطور نشد

کد اینطور نوشتم که بعد از لاگین همیشه وارد صفحهIndex.aspx بشه

Response.Redirect("~/Admin/Index.aspx"); ولی نتیجه ای نداشت جز اینکه URL شد:
http://localhost:7561/W2/Admin/Login.aspx?ReturnUrl=%2fW2%2fAdmin%2fIndex.aspx (http://localhost:7561/W2/Admin/Login.aspx?ReturnUrl=%2fW2%2fAdmin%2fIndex.aspx)

به صفحه مورد نظر نمیره!!!!!!!!!!!!!
اصلا چطور میشه بعد از لاگین خودبخود وارد صفحه Index در پوشه مدیریت بشه؟؟؟؟؟؟؟؟
امیدوارم درست توضیح داده باشم

راهنماییم کنید

احمد سامعی
پنج شنبه 20 خرداد 1389, 09:59 صبح
سلام
1. چرا از کنترل لاگین خود asp استفاده نمی کنی ؟ من که مشکلی تا حالا ندیدم جایی هم نخواندم باگ یا مورد امنیتی داشته باشه

2. کدهای وب کانفیگ ظاهراً درست اما فاصله بین هر کلید رعایت نشده مثلاً

formsname="Main"loginUrl
باید اینجوری باشه

forms name="Main" loginUrl

3. کد زیر درست فکر کنم مشکل از مورد دو هست حلش کن

FormsAuthentication.RedirectFromLoginPage(UserName .Text,false);
اما کد زیر گاهی تو لوکال درست عمل نمی کنه زیاد مهم نیست رو سرور درست هست

Response.Redirect("~/Admin/Index.aspx");