안녕하십니까 프게형님들
우주왕초보가 또 질문하러 왔습니다.ㅎㅎㅎㅎㅎ
asp.net에서 제공하는 로그인 컨트롤로 해봤는데
이상하게 그 안에 들어있는 텍스트상자 내 문자열을 가져올수가 없더라고요....
그래서 빠른포기하고 직접 텍스트박스랑 버튼 갖다놨습니다.
아이디 상자가 txtUserId 이고 비번 상자가 txtPassword 입니당
사진 잘안 보일까봐 사진 밑에 코드 따로 붙여봤습니다.
protected void btnLongin_Click(object sender, EventArgs e)
{
string id=txtUserId.Text;
string pwd=txtUserPassword.Text;
if (Authenticate(id, pwd))
{
FormsAuthentication.SetAuthCookie(id, false); //!!!!!!!!!!!!!!!! 이렇게 하면 보안쿠키가 만들어지는 거 아닌가요???????????????
}
}
private bool Authenticate(string id, string pwd)
{
bool result = false;
string connectionString = WebConfigurationManager.ConnectionStrings["GongSaeng"].ConnectionString;
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT user_no FROM dbo.UserInfo WHERE id=@id AND password=@pwd";
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@pwd", pwd);
conn.Open();
SqlDataReader rd = cmd.ExecuteReader();
if (rd.HasRows)
{
int no= (int)rd["user_no"];
if (no == 3) // 관리자 회원번호입니다만 저는 일단 일반회원 아이디로 로그인했습니다.
{
Response.Redirect("~/admin/Default.aspx");
}
result = true;
rd.Close();
}
else
{
result = false;
}
conn.Close();
return result;
}
이렇게 해서 돌려봤습니다.
지금 데이터베이스에는 회원번호 2짜리 일반회원 아이디 밖에 없고요.... (1번은 테스트하다가 날라갔는데 시드값을 1씩 증가하게 해놔서ㅜㅜㅜ)
그 아이디로 로그인하면 그냥 메인 화면으로 돌아옵니다.
클릭이벤트의 if구문밑에 else구문 넣고 비번 틀리면 오류표시하게도 해봤습니다.
틀리게 로그인했을때 오류뜨는거보니 함수는 알맞게 만든것 같기도 합니다.
근데 저대로면 보안 쿠키가 생성되어서 로그인 되었다는 표시가 되어야하지 않나요??
메인에 로그인뷰 컨트롤을 넣어놨습니다.
<asp:LoginView ID="lvMiddleLogin" runat="server">
<AnonymousTemplate>
// 생략합니당ㅎㅎㅎ 로그인 박스 만들어놨습니다.
</AnonymousTemplate>
<LoggedInTemplate>
<asp:LoginName ID="lnMiddleName" runat="server" /> 님 반갑습니다.
<asp:LinkButton ID="lkbtnMiddleInfoUpdate" runat="server" ForeColor="Black">회원정보수정</asp:LinkButton>
<asp:LoginStatus ID="lsMiddleStatus" runat="server" />
</LoggedInTemplate>
</asp:LoginView>
보안쿠키가 만들어지는거하고 로그인뷰하고는 별개인가요?
제가 따로 연결을해야하나요???
로그인 했을 때 여기에 ~님 반갑습니다! 하고 뜨게하는 방법이 뭘까요?ㅜㅜㅜ
사랑하는 프게님들 부탁드립니다