وقتی تو VS.NET برنامه هام رو اجرا میکنم برنامه ها کاملا اجرا میشن ولی وقتی تو سایت قرارشون میدم تو دایرکتوری ROOT سایت برنامه ها اجرا میشن و با تغییراتی که تو فایل WEB.CONFIG بوجود آوردم با آوردن غیر مجاز هر صفحه در صورت مجاز نبودن USER افراد به صفحه LOGIN ارجا داده میشن. ولی همین فایلها رو وقتی تو سایت تو داخل یک دایرکتوری قرار میدم به فایل WEB.CONFIG ایراد میگیره و میگه که باید <customErrors mode="Off"/> قرار بگیره. <authentication mode="Forms"> رو غیر فعال میکنم درست کار میکنه ولی دیگه افراد به صفحه LOGIN هدایت نمیشن.
در اینجا سورس برنامه رو میذارم هرکی که میتونه ممنون میشم راهنماییم کنه.
آیا وقتی که مسیر صفحه login رو تو یه subdirectory قرار میدم باید تو فایل web.config دایرکتوری root یا همون دایرکتوری هم تغییر بدم ؟

چون UPLOAD ERROR داد ناچارا فایلها رو سورسش رو زیر کپی کردم.

1-WEB.CONFIG

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="C#‎" debug="false"/>
<customErrors mode="Off"/>

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

<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=2122" cookieless="true" timeout="20" />
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
</system.web>
</configuration>


2-AHAD.ASPX

<%@ Page Language="C#‎" %>
<script runat="server">

void LoginBtn_Click(Object sender, EventArgs e) {

if (Page.IsValid) {
if ((UserName.Text == "ahad") && (UserPass.Text == "ahad")) {
FormsAuthentication.RedirectFromLoginPage(User Name.Text, true);
}
else {
Msg.Text = "Invalid User or password. Please try again";
}
}
}

</script>
<html>
<head>
</head>
<body style="FONT-FAMILY: arial">
<form runat="server">
<h2>Login Page
</h2>
<hr size="1" />
<table>
<tbody>
<tr>
<td>
Username:</td>
<td>
<asp:TextBox id="UserName" runat="server"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserName"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
Password:</td>
<td>
<asp:TextBox id="UserPass" runat="server" TextMode="Password"></asp:TextBox>
</td>
<td>
<asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" ErrorMessage="*" Display="Static" ControlToValidate="UserPass"></asp:RequiredFieldValidator>
</td>
</tr>
</tbody>
</table>
<asp:button id="LoginBtn" onclick="LoginBtn_Click" runat="server" text="Login"></asp:button>
<p>
<asp:Label id="Msg" runat="server" forecolor="red" font-names="Tahoma"></asp:Label>
</p>
</form>
</body>
</html>

3-AMIR.ASPX
<%@ Page language="C#‎" Codebehind="amir.aspx.cs" AutoEventWireup="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#‎">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 259px; POSITION: absolute; TOP: 165px" runat="server" Text="Button"></asp:Button>
<asp:Label id="Label1" style="Z-INDEX: 102; LEFT: 250px; POSITION: absolute; TOP: 136px" runat="server">U Success</asp:Label>
</form>
</body>
</HTML>


4- AMIR.ASPX.CS
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace test2
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion
}
}