PDA

View Full Version : پیغام خطا در استفاده از <authentication mode="Forms"/>



Hossein Bazyan
چهارشنبه 26 فروردین 1388, 22:36 عصر
سلام
هنگامیکه خط زیر را در وب کانفیگ مینویسم در لوکال هیچ پیغام خطایی نمیده اما در هاست پیغام خطا میده و تا زمانی که خط را حزف نکنم وب سایت بالا نمیاد.
نوشتن این کد در وب کانفیگ را لازم دارم برای اینکه میخوام timeout را برابر نیم ساعت قرار بدم آیا راه دیگری برای تنظیم timeout وجود داره و اگر نه علت پیغام خطا هنگام استفاده از کد خط زیر چیست؟


<authentication mode="Forms"/>

حامد مصافی
پنج شنبه 27 فروردین 1388, 09:13 صبح
دوست عزیز، لطفاً متن خطا را ذکر کنید.

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 10:21 صبح
دوست عزیز، لطفاً متن خطا را ذکر کنید.

سلام
متن خطا رو در عکس زیر میتوانید مشاهده نمائید.

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 10:58 صبح
شما اين تنظيمات را انجام بدين
سپس در نوار ادرس بنويسيد http:\\localhost\name proje

سلام
دوست عزیز ممنون از جواب شما اما من در لوکال مشکل ندارم من هنگامی که در هاست آپلود میکنم این پیغام رو میگیرم و الا در لوکال بدون مشکل کار میکنه .
در ضمن آیا راهی برای اضافه نمودن TimeOut وجود دارد یا خیر؟

علیرضا مداح
پنج شنبه 27 فروردین 1388, 11:46 صبح
سلام دوست عزیز،
راه حل های ارائه شده در این مقاله را تست کنید:
http://geekswithblogs.net/ranganh/archive/2005/04/25/37609.aspx

در مورد سوال دوم هم باید یک FormsAuthenticationTicket ایجاد نمایید،
مثالی از MSDN: (http://msdn.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx )


<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

private void Login_Click(Object sender, EventArgs e)
{
// Create a custom FormsAuthenticationTicket containing
// application specific data for the user.

string username = UserNameTextBox.Text;
string password = UserPassTextBox.Text;
bool isPersistent = PersistCheckBox.Checked;

if (Membership.ValidateUser(username, password))
{
string userData = "ApplicationSpecific data for this user.";

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
username,
DateTime.Now,
DateTime.Now.AddMinutes(30),
isPersistent,
userData,
FormsAuthentication.FormsCookiePath);

// Encrypt the ticket.
string encTicket = FormsAuthentication.Encrypt(ticket);

// Create the cookie.
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

// Redirect back to original URL.
Response.Redirect(FormsAuthentication.GetRedirectU rl(username, isPersistent));
}
else
{
Msg.Text = "Login failed. Please check your user name and password and try again.";
}
}

</script>
<html >
<head>
<title>Forms Authentication Login</title>
</head>
<body>
<form id="form1" runat="server">
<span style="BACKGROUND: #80ff80; font-weight:bold">
Login Page
</span>
<asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />
<table border="0">
<tbody>
<tr>
<td>Username:</td>
<td><asp:TextBox id="UserNameTextBox" runat="server" /></td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator1"
runat="server" ErrorMessage="*"
Display="Static"
ControlToValidate="UserNameTextBox" />
</td>
</tr>
<tr>
<td>Password:</td>
<td><asp:TextBox id="UserPassTextBox" TextMode="Password" runat="server" /></td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator2"
runat="server" ErrorMessage="*"
Display="Static"
ControlToValidate="UserPassTextBox" />
</td>
</tr>
<tr>
<td>Check here if this is
<span style="text-decoration:underline">not</span>
<br />a public computer:</td>
<td><asp:CheckBox id="PersistCheckBox" runat="server" autopostback="true" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="Login" runat="server" onserverclick="Login_Click" />
</form>
</body>
</html>

،/

حامد مصافی
پنج شنبه 27 فروردین 1388, 11:56 صبح
آیا در یکی از فولدر های سایت یک کپی از web.config دارید؟ برای مثال ممکن است فولدری با نام backup داشته باشید که Visual Studio به صورت اتوماتیک آن را ایجاد می کند.

به منظور افزودن امکان timeout خطوط زیر را باید در web.config داشته باشید


<authentication mode="Forms">
<forms name=".XXXAUTH" protection="All" timeout="60" loginUrl="/login.aspx" />
</authentication>

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 12:02 عصر
در مورد سوال دوم هم باید یک FormsAuthenticationTicket ایجاد نمایید،


سلام
جناب مداح من از این روش برای Authentication استفاده نمیکنم بنا به دلایلی ما نمیتوانیم از این روش استفاده کنیم ( قوانین داخلی شرکت) بنابراین این روش برای من جواب نمیدهد.



آیا در یکی از فولدر های سایت یک کپی از web.config دارید؟ برای مثال ممکن است فولدری با نام backup داشته باشید که Visual Studio به صورت اتوماتیک آن را ایجاد می کند.

به منظور افزودن امکان timeout خطوط زیر را باید در web.config داشته باشید


<authentication mode="Forms">
<forms name=".XXXAUTH" protection="All" timeout="60" loginUrl="/login.aspx" />
</authentication>

جناب BlackDal
حرف شما منطقی و درست اما مشکل من اینه که اگر خط <authentication mode="Forms"> را به وب کانفیگ اضافه میکنم پیغام خطا میده ( البته در لوکال نه و فقط روی هاست که عکسی از این پیغام را در یکی از پستهام گذاشتم )
در ضمن من فقط یک وب کانفیگ دارم که در ریشه قرار دارد و وب کانفیگ دیگری ندارم

علیرضا مداح
پنج شنبه 27 فروردین 1388, 12:07 عصر
در ضمن من فقط یک وب کانفیگ دارم که در ریشه قرار دارد و وب کانفیگ دیگری ندارم
تنظیم مربوط به Virtual Directory که در مقاله فوق قرار داشت را هم تست کردید؟

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 12:15 عصر
تنظیم مربوط به Virtual Directory که در مقاله فوق قرار داشت را هم تست کردید؟
سلام
جناب مداح اون لینک برای من Application Error میده و نتونستم بخونم اما فکر میکنم که Virtual Directory برای لوکال باشه نه هاست! شاید من اشتباه میکنم به هر حال من میتوانم با provider تماس بگیرم اگر فکر میکنید این مشکل باید توسط provider حل شود من با ایشان تماس بگیرم .


Application Error!


Details.

No error message available.
Return to site (http://geekswithblogs.net/Default.aspx)

علیرضا مداح
پنج شنبه 27 فروردین 1388, 12:38 عصر
دوست عزیز Application شما بر روی هاست در چه مسیری آپلود شده است؟

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 13:06 عصر
دوست عزیز Application شما بر روی هاست در چه مسیری آپلود شده است؟

سلام

دوست عزیز مسیر ریشه هاست من /httpdocs میباشد. حال من شاخه ای بنام kce ساخته ام که کل application با تمام متعلقات و web.config اونجا قرار دارند. دلیل ساخت این شاخه برای تست وب سایت میباشد و مشتری میتواند وب سایت را آنجا تست کند اگر کار وب سایت تمام شد و مشتری هم پسندید قراره به شاخه ریشه ( شاخه اصلی ) منتقل بشه .
یعنی ممکنه اشتباه از مسیر وب کانفیگ باشد؟

KavoshGar_ir
پنج شنبه 27 فروردین 1388, 14:42 عصر
سلام

دوست عزیز مسیر ریشه هاست من /httpdocs میباشد. حال من شاخه ای بنام kce ساخته ام که کل application با تمام متعلقات و web.config اونجا قرار دارند. دلیل ساخت این شاخه برای تست وب سایت میباشد و مشتری میتواند وب سایت را آنجا تست کند اگر کار وب سایت تمام شد و مشتری هم پسندید قراره به شاخه ریشه ( شاخه اصلی ) منتقل بشه .
یعنی ممکنه اشتباه از مسیر وب کانفیگ باشد؟
فکر می کنم مشکل شما همین باشد!من هم قبلا چنین کاری کردم و تقریبا دو هفته در زمین و هوا بودم فایلهایتان را مستقیما در روت بریزید و تست بگیرید!(برای اینکه مطمئن شوید به جای پروژه اصلیتان فقط یک صفحه تست در فولدر مذکور بریزید و تست بگیرید احتمال زیاد باز هم ارور!:چشمک:)

khorsandreza
پنج شنبه 27 فروردین 1388, 14:53 عصر
دستورات ظاهر ناقص است من هم به این مشکل برخوردم ولی بشکل زیر نوشتم حل شد

<authentication mode="Forms">
<forms loginUrl="login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 15:12 عصر
دستورات ظاهر ناقص است من هم به این مشکل برخوردم ولی بشکل زیر نوشتم حل شد


<authentication mode="Forms">
<forms loginUrl="login.aspx"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

سلام
دوست عزیز دستور ناقص نیست اصلا با mode=forms مشکل داره

khorsandreza
پنج شنبه 27 فروردین 1388, 15:34 عصر
این روش را امتحان کن

<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<user name="?" password="admin"/>
</credentials>
</forms>

khorsandreza
پنج شنبه 27 فروردین 1388, 15:35 عصر
ببخشید دستورات را ناقص ارسال کردم

-->
<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" timeout="30" path="/">
<credentials passwordFormat="Clear">
<user name="?" password="?"/>
</credentials>
</forms>
</authentication>

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 16:09 عصر
ببخشید دستورات را ناقص ارسال کردم

-->

<

authenticationmode="Forms">

<


formsloginUrl="Login.aspx"protection="All"timeout="30"path="/">

<


credentialspasswordFormat="Clear">

<


username="?"password="?"/>

</


credentials>

</


forms>

</


authentication>

سلام
ممنون از وقتی که میذارید اما در کل با دستور <authentication mode="Forms"/> مشکل داره حتی اگر داخلش خالی هم باشه پیغام خطا میده.
من فکر میکنم اگر در ریشه کپی بشه درست میشه هنوز فرصت نکردم امتحان کنم

iman_22a
پنج شنبه 27 فروردین 1388, 16:38 عصر
اون اروری که تصویرش رو گذاشتین فقط می تونه از اکتیو نبودن فولدریه که تمامی فایلها توی اون قرار دارن . چون فایلهاتون توی Virtual Directory نیستن طبیعتا ازتون ارور می گیره . اگر Create Application کنین از ارور مذکور رد میشین .
توی متن ارور همه چیز رو گفته ...

به ورژن فریم ورکتون هم باید دقت کنین .

علیرضا مداح
پنج شنبه 27 فروردین 1388, 17:31 عصر
چون پروژه شما در Root Folder قرار نگرفته است، فایل web.config پروژه شما هم به عنوان یک nested web config در نظر گرفته خواهد شد و طبیعتا" یکسری از element ها همچون <authentication /> در آن قابل استفاده نیست، برای حل این مشکل یا وب سایت خود را به Root Folder منتقل کنید یا اینکه به داخل کنترل پنل وب سایت خود رفته و در تنظیمات مربوط به آن، یک Virtual Directory برای Application ایجاد نمایید،
به طور مثال در کنترل پنل Helm:
http://www.ihostasp.net/HelmOverview/Helm_VirtualDirectory_01_thumb.jpg

Virtual directories are critical for ASP/ASP.NET developers. They allow multiple ASP/ASP.NET applications to co-exist by creating virtual application roots where each application can have it's own global.asa/global.asax files. There are many other useful functions that can be accomplished by using virtual directories.
ref: Helm Control Panel Features Overview (http://www.ihostasp.net/HelmOverview/)

،/

Hossein Bazyan
پنج شنبه 27 فروردین 1388, 23:14 عصر
سلام
بهترین راه حل، راه حل جناب مداح بود. با تشکر از ایشان کسانی که همچین مشکلی رو دارند با ساختن Virtual Directory مشکلشان رو میتونند حل کنند. در این حالت هاست این شاخه رو بعنوان شاخه ریشه میشناسد.
از مدیران عزیز تقاضا مینمایم با توجه به رسیدن این تاپیک به نتیجه ، تاپیک رو قفل کنند تا هم از پاسخهای اضافی خودداری شود و هم دوستان بدانند که تاپیک جواب گرفته است.
مرسی از دوستان ، خصوصا جناب مداح BlackDal عزیز

reza_program
شنبه 19 تیر 1389, 00:02 صبح
سلام
در واقع این خطا به خاطر اتصال به دیتابیس هست؟
یا نه به خاطر سیشن و یا چیزهای دیگه؟

اگه بخاطر اتصال به دیتابیس باشه
اگه من توی یه صفحه ی دیگه به دیتابیس وصل شم و یه سری اطلاعات رو بگیریم
میشه بگید کدی توی تگ <authentication mode="Forms"> باید بنویسم چی هست؟
مثلا صفحه Default.aspx ؟