sahel65
سه شنبه 30 خرداد 1391, 20:52 عصر
سلام خدمت دوستان؛
چون به یک صفحه جهت ورود و مشاهده مشخصات کاربر نیاز داشتم و میخواستم اصولی هم باشه، تو یکی از search ها به این صفحه برخوردم:
http://bytes.com/topic/net/answers/736931-how-display-user-name-after-login-page-using-c
از کدش خوشم اومد ولی چون حرفه ای نیستم، نتونستم همه قسمتهاش رو متوجه بشم؛ جاهایی رو که متوجه شدم خدمت شما میگم و بقیه رو ازتون درخواست می کنم اگه می دونید راهنماییم کنید تا مثل همین صفحه ایجاد و درست کنم.
ملاحظه کنید؛ این کد Html یا همون صفحه وارد کردن user و password هستش:
<HEAD>
<title>Login</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<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">
<table id="mainTable" border="0" style="Z-INDEX: 103; LEFT: 544px; WIDTH: 264px; POSITION: absolute; TOP: 96px; HEIGHT: 296px">
<TBODY>
<tr>
<td>
<table class="t_border" id="loginTable" cellspacing="15" cellpadding="0">
<tr>
<td align="center" colspan="2"><b>USER LOGIN</b></td>
</tr>
<tr>
<td><b>Login: </b>
</td>
<td><asp:textbox id="txtUserName" runat="server" width="128px" BackColor="LightGray" Font-Bold="True"></asp:textbox><asp:requiredfieldvalidator id="rvUserValidator" runat="server" controltovalidate="txtUserName" errormessage="You Must Enter a EmployeeId!"
display="None">*</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td style="HEIGHT: 23px"><b>Password: </b>
</td>
<td style="HEIGHT: 23px"><asp:textbox id="txtPassword" runat="server" width="128px" textmode="Password" BackColor="LightGray"
Font-Bold="True"></asp:textbox><asp:requiredfieldvalidator id="rvPasswordValidator" runat="server" controltovalidate="txtPassword" errormessage="Empty Passwords not accepted"
display="None">*</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center" colspan="2"><asp:button id="cmdSubmit" runat="server" text="Submit" borderstyle="Solid" Font-Bold="True"></asp:button></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="messageDisplay">
<tr>
<td><asp:validationsummary id="Validationsummary1" runat="server" width="248px" displaymode="BulletList" Height="40px"></asp:validationsummary></td>
</tr>
</table>
</td>
</tr>
</TBODY>
</table>
</form>
<asp:label id="lblMessage2" runat="server" width="264px" font-bold="True" font-italic="True"
font-size="Medium" forecolor="#C00000" style="Z-INDEX: 101; LEFT: 544px; POSITION: absolute; TOP: 432px"></asp:label>
<asp:label id="lblMessage" runat="server" width="264px" font-bold="True" font-italic="True"
font-size="Medium" forecolor="#C00000" style="Z-INDEX: 102; LEFT: 544px; POSITION: absolute; TOP: 400px"></asp:label></TR></TBODY></TABLE>
</body>
و اینهم کد مربوط به بررسی و اتصال به بانک:
private void cmdSubmit_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
if (DBConnection(txtUserName.Text.Trim(), txtPassword.Text.Trim()))
{
FormsAuthentication.RedirectFromLoginPage (txtUserName.Text, false);
Response.Redirect ("Success.aspx");
}
else
{
lblMessage.Text = "Invalid Login, please try again!";
}
}
}
private bool DBConnection(string txtUser, string txtPass)
{
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["strConn"]);
SqlCommand myCmd = new SqlCommand("ValidateUser", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
SqlParameter objParam1;
SqlParameter objParam2;
SqlParameter returnParam;
objParam1 = myCmd.Parameters.Add ("@EmployeeNumber", SqlDbType.VarChar);
objParam2 = myCmd.Parameters.Add ("@EMPPassword", SqlDbType.VarChar);
returnParam = myCmd.Parameters.Add ("@Num_of_User", SqlDbType.Int);
objParam1.Direction = ParameterDirection.Input;
objParam2.Direction = ParameterDirection.Input;
returnParam.Direction = ParameterDirection.ReturnValue;
objParam1.Value = txtUser;
objParam2.Value = txtPass;
try
{
if (myConn.State.Equals(ConnectionState.Closed))
{
myConn.Open();
myCmd.ExecuteNonQuery();
}
if ((int)returnParam.Value < 1)
{
lblMessage.Text = "Invalid Login!";
return false;
}
else
{
myConn.Close();
return true;
}
}
catch (Exception ex)
{
lblMessage2.Text = ex + "Error Connecting to the database";
return false;
}
}
توضیحات:
چند سوال برام ایجاد شده که نتونستم برنامه رو بازنویسیش کنم:
1- مورد اول خطا مربوط به خط 1 بود که با تغییر private به public درست شد.
2- خطوط 3 تا 15 رو امکانش هست یه توضیحی بدید؟
3- در خط 20 رشته اتصال رو باید در Webconfig ایجاد کرده و اسمش رو تو اینجا وارد کنیم، این مورد درسته دیگه!
4- در خط 21 اشاره به یک Stored procedure داره دیگه درسته؟ اگه جواب مثبته توی SP چی باید بنویسیم که کدمون به درستی کار کنه؟
می بخشید اگه سوالاتم زیاد شد.:خجالت::خجالت::خجالت::خجال ت:
چون به یک صفحه جهت ورود و مشاهده مشخصات کاربر نیاز داشتم و میخواستم اصولی هم باشه، تو یکی از search ها به این صفحه برخوردم:
http://bytes.com/topic/net/answers/736931-how-display-user-name-after-login-page-using-c
از کدش خوشم اومد ولی چون حرفه ای نیستم، نتونستم همه قسمتهاش رو متوجه بشم؛ جاهایی رو که متوجه شدم خدمت شما میگم و بقیه رو ازتون درخواست می کنم اگه می دونید راهنماییم کنید تا مثل همین صفحه ایجاد و درست کنم.
ملاحظه کنید؛ این کد Html یا همون صفحه وارد کردن user و password هستش:
<HEAD>
<title>Login</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<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">
<table id="mainTable" border="0" style="Z-INDEX: 103; LEFT: 544px; WIDTH: 264px; POSITION: absolute; TOP: 96px; HEIGHT: 296px">
<TBODY>
<tr>
<td>
<table class="t_border" id="loginTable" cellspacing="15" cellpadding="0">
<tr>
<td align="center" colspan="2"><b>USER LOGIN</b></td>
</tr>
<tr>
<td><b>Login: </b>
</td>
<td><asp:textbox id="txtUserName" runat="server" width="128px" BackColor="LightGray" Font-Bold="True"></asp:textbox><asp:requiredfieldvalidator id="rvUserValidator" runat="server" controltovalidate="txtUserName" errormessage="You Must Enter a EmployeeId!"
display="None">*</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td style="HEIGHT: 23px"><b>Password: </b>
</td>
<td style="HEIGHT: 23px"><asp:textbox id="txtPassword" runat="server" width="128px" textmode="Password" BackColor="LightGray"
Font-Bold="True"></asp:textbox><asp:requiredfieldvalidator id="rvPasswordValidator" runat="server" controltovalidate="txtPassword" errormessage="Empty Passwords not accepted"
display="None">*</asp:requiredfieldvalidator></td>
</tr>
<tr>
<td align="center" colspan="2"><asp:button id="cmdSubmit" runat="server" text="Submit" borderstyle="Solid" Font-Bold="True"></asp:button></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table id="messageDisplay">
<tr>
<td><asp:validationsummary id="Validationsummary1" runat="server" width="248px" displaymode="BulletList" Height="40px"></asp:validationsummary></td>
</tr>
</table>
</td>
</tr>
</TBODY>
</table>
</form>
<asp:label id="lblMessage2" runat="server" width="264px" font-bold="True" font-italic="True"
font-size="Medium" forecolor="#C00000" style="Z-INDEX: 101; LEFT: 544px; POSITION: absolute; TOP: 432px"></asp:label>
<asp:label id="lblMessage" runat="server" width="264px" font-bold="True" font-italic="True"
font-size="Medium" forecolor="#C00000" style="Z-INDEX: 102; LEFT: 544px; POSITION: absolute; TOP: 400px"></asp:label></TR></TBODY></TABLE>
</body>
و اینهم کد مربوط به بررسی و اتصال به بانک:
private void cmdSubmit_Click(object sender, System.EventArgs e)
{
if (Page.IsValid)
{
if (DBConnection(txtUserName.Text.Trim(), txtPassword.Text.Trim()))
{
FormsAuthentication.RedirectFromLoginPage (txtUserName.Text, false);
Response.Redirect ("Success.aspx");
}
else
{
lblMessage.Text = "Invalid Login, please try again!";
}
}
}
private bool DBConnection(string txtUser, string txtPass)
{
SqlConnection myConn = new SqlConnection(ConfigurationSettings.AppSettings["strConn"]);
SqlCommand myCmd = new SqlCommand("ValidateUser", myConn);
myCmd.CommandType = CommandType.StoredProcedure;
SqlParameter objParam1;
SqlParameter objParam2;
SqlParameter returnParam;
objParam1 = myCmd.Parameters.Add ("@EmployeeNumber", SqlDbType.VarChar);
objParam2 = myCmd.Parameters.Add ("@EMPPassword", SqlDbType.VarChar);
returnParam = myCmd.Parameters.Add ("@Num_of_User", SqlDbType.Int);
objParam1.Direction = ParameterDirection.Input;
objParam2.Direction = ParameterDirection.Input;
returnParam.Direction = ParameterDirection.ReturnValue;
objParam1.Value = txtUser;
objParam2.Value = txtPass;
try
{
if (myConn.State.Equals(ConnectionState.Closed))
{
myConn.Open();
myCmd.ExecuteNonQuery();
}
if ((int)returnParam.Value < 1)
{
lblMessage.Text = "Invalid Login!";
return false;
}
else
{
myConn.Close();
return true;
}
}
catch (Exception ex)
{
lblMessage2.Text = ex + "Error Connecting to the database";
return false;
}
}
توضیحات:
چند سوال برام ایجاد شده که نتونستم برنامه رو بازنویسیش کنم:
1- مورد اول خطا مربوط به خط 1 بود که با تغییر private به public درست شد.
2- خطوط 3 تا 15 رو امکانش هست یه توضیحی بدید؟
3- در خط 20 رشته اتصال رو باید در Webconfig ایجاد کرده و اسمش رو تو اینجا وارد کنیم، این مورد درسته دیگه!
4- در خط 21 اشاره به یک Stored procedure داره دیگه درسته؟ اگه جواب مثبته توی SP چی باید بنویسیم که کدمون به درستی کار کنه؟
می بخشید اگه سوالاتم زیاد شد.:خجالت::خجالت::خجالت::خجال ت: