private string _sCookieId = string.Empty;
private string sCookieId
{
get{return _sCookieId;}
set
{ //사용자 정보 얻기
if (Page.User.Identity.IsAuthenticated == true)
{
_sCookieId = Page.User.Identity.Name + "/" + value;
}
else
{
string sRemoteIP = (string)HttpContext.Current.Request.UserHostAddress;
_sCookieId = sRemoteIP + "/" + value;
}
}
}
// 쿠키를 이용하여 조회수를 1증가 시키는 메서드.
private void IncreaseReadCountCookie(string TableName, string boardid)
{
bool dupliChk = false;
string c_read_idx = string.Empty;
sCookieId = boardid;
if (Request.Cookies[TableName] != null)
c_read_idx = Request.Cookies[TableName]["READ"];
else
c_read_idx = string.Empty;
Response.Cookies[TableName].Value = TableName;
Response.Cookies[TableName].Expires = DateTime.Now.AddDays(1);
string [] arrRead = c_read_idx.Split(',');
for (int i = 0; i < arrRead.Length; i++)
{
if (sCookieId == arrRead[i].ToString().Trim()) dupliChk = true;
}
if (dupliChk == true)
{
Response.Cookies[TableName]["READ"] = c_read_idx;
}
else
{
//// 조회수 1 증가.
SqlCommand cmd = new SqlCommand("board_UPDATE_BOARDREADCOUNT", DbConn.GetConn());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@boardid", boardid);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
Response.Cookies[TableName]["READ"] = c_read_idx + "," + sCookieId;
}
}
// 세션을 이용하여 조회수를 1증가 시키는 메서드.
private void IncreaseReadCountSession(string TableName, string boardid)
{
sCookieId = boardid;
//해당 게시물의 ID와 IP의 조합으로 세션이 생성되었는지 따진다.
if (Session[sCookieId] == null)
{
SqlCommand cmd = new SqlCommand("board_UPDATE_BOARDREADCOUNT", DbConn.GetConn());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@boardid", boardid);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
//중복방지를 위한 세션 생성 Session[IP/BID]
Session[sCookieId] = "1";
}
}
'Programming > ASP.NET' 카테고리의 다른 글
[ASP.NET] SqlDataReader Close 커넥션 같이 끊기 (0) | 2010.07.07 |
---|---|
[스크랩] Javascript 로 UpdatePanel 핸들링 하기 (0) | 2010.06.10 |
[스크랩] 개인화주소 구현 (0) | 2010.06.07 |
[스크랩] ASP.NET에서의 Session 핸들링을 알아보자. (0) | 2010.05.19 |
[스크랩] 계층적 데이터 바인딩 (0) | 2010.05.13 |
[스크랩] 이미지배경 투명처리 (0) | 2010.05.12 |
ASP.NET JavaScript 에서 C# 함수호출하기 - PageMethod (0) | 2010.05.11 |
[스크랩] 페이지 수명주기 단계 (0) | 2010.05.04 |
[스크랩] ASP.NET 보안. (0) | 2010.05.04 |
[스크랩] ASP.NET에서 전역 변수를 사용 현재 접속자 리스트 구현 (0) | 2010.05.03 |