PDA

View Full Version : سوال: طراحی یه صفحه ساده لاگین



Sasy360
شنبه 16 خرداد 1388, 22:41 عصر
من دو ماهی هست که برنامه نویسی رو با ASP.NET شروع کردم ولی هنوز خیلی مطالب پایه ای رو از این زبون نمیدونم! اصلا زبون برنامه نویسی به حساب میاد؟ اگه زبون برنامه نوسی هست پس چرا همه کارها رو #C یا VB.NET انجام میدن؟ من اول Visual Web Developer رو نصب کردم و بعد IIS رو، برا همین برای اجرای برنامه ها رو IIS مشکل داشتم، بعد از خوندن سایت های زیادی این مشکل رو بر طرف کردم. اصلا نصب این IIS نیازه؟ خود Visual Web Developer میتونه صفحه رو Run کنه پس چه نیازی به IIS هست؟
من رو پروژه سایتم رو یه کامپیوتر که Visual Studio 2008 داشت کار میکردم. چون نمیدونستم چه جوری باید پروژه رو اصولی ذخیره کرد (که جای دیگه بشه روش کار کرد) اومدم فولدر روت پروژه با نام Website2 در wwwroot اون کامپیوتر، رو رو فلشم کپی کردم (این کار اصلا درسته؟ روش بهتری هست؟) حالا که اون فولدر رو در wwwroot سیستم خودم کپی میکنم، Visual Web Developer نمیتونه بازش کنه. با جست و جو هایی که تو اینترنت انجام دادم فهمیدم که باید یه Virtual Directory بسازم و فولدر سایت رو بهش بدم. با این روش Visual Web Developer سایت رو باز میکنه ولی انگار به عکس ها و CSS ها که در روت سایت هست دسترسی نداره. (چه جوری باید این مشکل رو برطرف کرد؟) لاگین هم کار نمیکنه. اگه سایت رو از رو فلشم تو Visual Web Developer باز کنم طراحیش درست دیده میشه ولی لاگین دوباره کار نمیکنه.
صفحه Home.aspx، صفحه اصلی هست و کادرها و دکمه لاگین در سایدبار این صفحه قرار داره. این کد های Home.aspx.cs هست:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Net;
using System.Web.Configuration;

public partial class Login : System.Web.UI.Page
{
private string connectionString =
WebConfigurationManager.ConnectionStrings["test"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
string selectSQL;
bool flag = false;
string qq = "Callus.aspx";
selectSQL = "SELECT * FROM users";
// selectSQL += "WHERE user_name_std='" + TextBox1.Text + "' and Pass_std='" + TextBox2.Text + "'";
OleDbConnection con = new OleDbConnection(connectionString);
con.Open();
OleDbCommand cmd = new OleDbCommand(selectSQL, con);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
if (reader["Name_user"].ToString().Trim() == TextBox1.Text && reader["Family_user"].ToString().Trim() == TextBox2.Text)
{
flag = true;
break;
}
}

if (flag)
{
Session["aaa"] = "h";
Response.Redirect(qq);
}
else
{
Label1.Text = "ERROR Try Again";
}
reader.Close();
con.Close();

}
}
اینم کد های web.config هست:

<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectio nGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHa ndlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSecti onGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializatio nSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSe ction, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationSe rviceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSecti on, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings>
<add name="test" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\WebSite2\App_Data\user.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
صفحه بدون هیچ اروری Run میشه. مشکلش چیه به نظرتون؟ مشکل در کدها؟ یا درست اجرا نشدن رو این IIS کوفتی؟ ببخشید که سوال هام زیاد هست.
راستی از Visual Web Developer 2008 ، Micrsoft SQL Server 2008 ، IIS 7.0 استفاده می کنم.

iman_22a
شنبه 16 خرداد 1388, 22:55 عصر
سلام ...
به به ویندوز ویستا ، IIS7 . تازه اول حال گیریه . یکی از دوستان من هم با ویستا و Vb2008 مشکل پیدا کرده بود . روی IIS7 صفحه اجرا میشد ولی روی Asp.net Development Server (یکی از سوالهای شما هم همین بود که در صورت نبود IIS ...) صفحه اجرا نمیشد و یه ارور عجیب و غریب می داد . راستی سطح دسترسی یوزر Asp.net رو به فولدرها و فایلهات بررسی کن .

Sasy360
یک شنبه 17 خرداد 1388, 01:15 صبح
به به ویندوز ویستا ، IIS7 . تازه اول حال گیریه . یکی از دوستان من هم با ویستا و Vb2008 مشکل پیدا کرده بود . روی IIS7 صفحه اجرا میشد ولی روی Asp.net Development Server (یکی از سوالهای شما هم همین بود که در صورت نبود IIS ...) صفحه اجرا نمیشد و یه ارور عجیب و غریب می داد .ایمان جان چیزی که در msdn در مورد IIS می خوندم نوشته بود که IIS نزدیک ترین چیزی رو که یک سرور اجرا میکنه رو برا شما شبیه سازی میکنه پس حتما IIS درست تر از Asp.net Development Server است ولی به هر حال این ضعف برنامه نویسی مایکروسافت رو نشون میده!

راستی سطح دسترسی یوزر Asp.net رو به فولدرها و فایلهات بررسی کن .چه جوریه این کار؟ توضیح میدی؟ ممنون.

iman_22a
یک شنبه 17 خرداد 1388, 04:25 صبح
ایمان جان چیزی که در msdn در مورد IIS می خوندم نوشته بود که IIS نزدیک ترین چیزی رو که یک سرور اجرا میکنه رو برا شما شبیه سازی میکنه پس حتما IIS درست تر از Asp.net Development Server است ولی به هر حال این ضعف برنامه نویسی مایکروسافت رو نشون میده!

سلام ، بله همینطوره . Asp.net Development Server رو گذاشتن که اگر امکان استفاده از IIS رو نداشتیم بیخیال برنامه نویسی تحت وب با Asp.net نشیم :چشمک: البته نسبت به IIS کمبودهایی داره که به مراتب خودت متوجه میشی .


چه جوریه این کار؟ توضیح میدی؟ ممنون.

توی ویستا بخاطر ندارم چطوریه ولی یوزر Asp.net باید به همه فایلهات دسترسی داشته باشه (من معمولا برای تست Everyone رو هم میدم با سطح دسترسی Read , Execute)(توی IIS روی VirtualDirectory برنامه ات کلیک راست و permission رو میزنی و دسترسی های لازم رو میدی البته توی IIS6 که اینطور بود توی 7 هم تقریبا باید همینطور باشه)

Sasy360
یک شنبه 17 خرداد 1388, 16:02 عصر
توی ویستا بخاطر ندارم چطوریه ولی یوزر Asp.net باید به همه فایلهات دسترسی داشته باشه (من معمولا برای تست Everyone رو هم میدم با سطح دسترسی Read , Execute)(توی IIS روی VirtualDirectory برنامه ات کلیک راست و permission رو میزنی و دسترسی های لازم رو میدی البته توی IIS6 که اینطور بود توی 7 هم تقریبا باید همینطور باشه)
من اومدم تو قسمت سمت راست IIS Manager که سایت ها و فایل ها رو ردیف می کرد این permission ها رو دادم ولی هنوز برنامم مشکلات قبلی رو داره. حس می کنم به Content ها (مثل StyleSheet.css) دسترسی نداره.

iman_22a
یک شنبه 17 خرداد 1388, 16:27 عصر
من اومدم تو قسمت سمت راست IIS Manager که سایت ها و فایل ها رو ردیف می کرد این permission ها رو دادم ولی هنوز برنامم مشکلات قبلی رو داره. حس می کنم به Content ها (مثل StyleSheet.css) دسترسی نداره.

Permission ها رو کامل دادین ؟ (منظور اینه که فقط به فولدر اصلی نداده باشین ، بلکه به همه فایل ها و ساب فولدرها باید بدین )

اگر permission ها رو درست نداده باشین به css ها هم دسترسی نخواهید داشت . مسیر css ها درسته ؟ اگر نسبت به قبل تغییر کرده اند ، ممکنه کش شده باشن (ctrl+F5)

Sasy360
یک شنبه 17 خرداد 1388, 18:01 عصر
Permission ها رو کامل دادین ؟ (منظور اینه که فقط به فولدر اصلی نداده باشین ، بلکه به همه فایل ها و ساب فولدرها باید بدین )ببین درست کار میکنم؟
وقتی رو یه فولدر راست کلیک میکنم و Edit Permission رو میزنم، میاد Properties اون فولدر رو برام میاره و من Enable Sharing رو فعال میکنم و اجازه Read و Wright رو به Everyone میدم.

http://piqlet.com/thumbs/1e.jpg (http://piqlet.com/?v=1e.jpg)

اینم Share Permission :

http://piqlet.com/thumbs/2e.jpg (http://piqlet.com/?v=2e.jpg)


اگر permission ها رو درست نداده باشین به css ها هم دسترسی نخواهید داشت . مسیر css ها درسته ؟ اگر نسبت به قبل تغییر کرده اند ، ممکنه کش شده باشن (ctrl+F5)امید من فکر کنم که Visual Web Developer دست رسی به فایل ها داره و این IIS هست که دست رسی به فایل ها نداره چون سایت تو خود Visual Web Developer درست نشون داده میشه! (Security مایکروسافت رو داری؟)

Sasy360
سه شنبه 19 خرداد 1388, 01:16 صبح
جان من یکی کمک کنه

Sasy360
پنج شنبه 21 خرداد 1388, 01:30 صبح
برای اضافه کردن یه پایگاه داده Access به پروژه فقط باید اسمش و آدرسش رو تو Web.config اضافه کنیم؟
Connect to Database تو منو Tools به چه دردی میخوره؟

hobab-theme
پنج شنبه 21 خرداد 1388, 02:27 صبح
برای اضافه کردن یه پایگاه داده Access به پروژه فقط باید اسمش و آدرسش رو تو Web.config اضافه کنیم؟
دوست عزیز در صورتی که شما از پوشه App_Data استفاده می کنید میتونید connection string زیر رو توی قایل پیکربندی قرار بدید

<add name="DBName" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;Connect Timeout=15;User Instance=True"/>
اینم برای دیتابیس اکسس

<add name="DBName" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Persist Security Info=True"/>
البته شما میتونید به جای DBName از یک نام دلخواه استفاده کنید و همین طور باید به جای Database.mdb نام دیتابیستون رو که تو فولدر App_Data هست رو وارد کنید.
از طریق قطعه کد زیر هم میتونید از تو صفحه هاتون این کانکشن استرینگ رو از تو فایل پیکر بندی صدا بزنید


Dim con As New SqlConnection(ConfigurationManager.ConnectionStrin gs("DBName").ConnectionString)

یا


Dim con As New OleDbConnection(ConfigurationManager.ConnectionStr ings("DBName").ConnectionString)

موفق باشید

mobin-co
چهارشنبه 15 مهر 1388, 17:02 عصر
سلام
من مشکلی که دارم اینه که بعد از آپلود login page و دیتا بیس متاسفانه destinatin page لود نمیشه من دیتا بیس رو هم در فولدر App_Data هم در db هم در خود www کپی کردم
در واقع Runtime Error می گیره در صورتی که رو سیستم خودم از این خبر ها نیست

صفحه مقصد هم تا نونجا که میدونم مشکلی نداره و فقط طوری طراحی شده که اگر
if (User.Identity.IsAuthenticated == false)
Response.Redirect("login.aspx");

میشه لطفا به من کمک کنین؟

mobin-co
پنج شنبه 16 مهر 1388, 11:56 صبح
از اساتید کسی نیست به ما کمک کنه؟

جون یه انسان در خطره ها :چشمک:

mobin-co
شنبه 18 مهر 1388, 11:18 صبح
ممنون از این همه کمک

sqlcommandbuilder
شنبه 18 مهر 1388, 14:26 عصر
در این قسمت ویدئو فارسی ساختن لوگین رو دانلود کنید:
http://www.babrian.com/tabid/59/Default.aspx

mobin-co
پنج شنبه 30 مهر 1388, 17:11 عصر
تو این ویدئو هم به مشکل من اشاره نشده بود