제목 : 31.4. 회원 가입 : 로그인 페이지 : Login.ascx.cs
글번호:
|
|
194
|
작성자:
|
|
레드플러스
|
작성일:
|
|
2007/06/22 오후 7:44:00
|
조회수:
|
|
6652
|
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;//
public partial class LoginControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
SqlConnection objCon = new SqlConnection();
objCon.ConnectionString =
ConfigurationManager.ConnectionStrings[
"ConnectionString"].ConnectionString;
SqlCommand objCmd = new SqlCommand();
objCmd.Connection = objCon;
objCmd.CommandText = "LoginUser";
objCmd.CommandType = CommandType.StoredProcedure;
objCmd.Parameters.AddWithValue("@DomainID", txtUserID.Text);
objCmd.Parameters.AddWithValue("@Password", txtPassword.Text);
objCmd.Parameters.AddWithValue("@LastLoginIP", Request.UserHostAddress);
// 첫번째 모양
objCmd.Parameters.Add(
"@OriginLastLoginIP", SqlDbType.VarChar, 15);
objCmd.Parameters["@OriginLastLoginIP"].Direction =
ParameterDirection.Output;
// 두번째 모양(권장)
SqlParameter objPrm = new SqlParameter(
"@OriginLastLoginDate", SqlDbType.DateTime);
objPrm.Direction = ParameterDirection.Output;//
objCmd.Parameters.Add(objPrm);//파라미터 개체 추가
// 실행 후 결과 값 받기
objCon.Open();
// 단일 값(하나의 결과 값)을 받을 때 최적 : ExecuteScalar()
int result = Convert.ToInt32(objCmd.ExecuteScalar());
// 저장 프로시저에서 반환되어져 온 값을 세션에 담기
Session["LastLoginDate"] = objPrm.Value;
Session["LastLoginIP"] =
objCmd.Parameters["@OriginLastLoginIP"].Value;
objCon.Close();
if (result > 0) {
//[1] 인증 관련 명령어 : 입력한 아이디에 대한 인증값 부여
FormsAuthentication.SetAuthCookie(txtUserID.Text, false);
Response.Redirect("~/Greetings.aspx"); // 메인으로 이동
}
else {
lblError.Text = "아이디 또는 암호가 틀립니다.";
}
}
}