programing

asp.net 웹사이트에서 쿠키 값을 얻는 방법

newstyles 2023. 10. 6. 20:58

asp.net 웹사이트에서 쿠키 값을 얻는 방법

로그인 성공 후 쿠키를 만들고 사용자 이름 값을 저장하고 있습니다.웹사이트가 열렸을 때 쿠키에 접속하려면 어떻게 해야 합니까?쿠키가 존재하는 경우 쿠키 값에서 사용자 이름 텍스트 상자를 채우고 싶습니다.그리고 사용자 이름을 얻기 위해 값을 암호 해독하는 방법.저는 데이터베이스에서 사용자 정보를 가져와 서버 측면 검증을 하고 있습니다.c#과 함께 vs2010을 사용하고 있습니다.

FormsAuthenticationTicket tkt;
string cookiestr;
HttpCookie ck;
tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
    DateTime.Now.AddYears(1), chk_Rememberme.Checked, "User Email");
cookiestr = FormsAuthentication.Encrypt(tkt);
ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);

if (chk_Rememberme.Checked)
{
    ck.Expires = tkt.Expiration;
    ck.Path = FormsAuthentication.FormsCookiePath;
    Response.Cookies.Add(ck);
}

cookie는 이름이 로 생성됩니다.YAFNET_인증 및 콘텐츠 암호화

웹 구성:

  <forms name=".YAFNET_Authentication" loginUrl="Home.aspx"
  protection="All" timeout="15000" cookieless="UseCookies"/>

Request를 사용할 수 있습니다.쿠키를 읽을 쿠키 모음:

if (Request.Cookies["key"] != null)
{
   var value = Request.Cookies["key"].Value;
}

Forms Authentication.암호 해독은 쿠키의 이름이 아닌 실제 값을 가져옵니다.쿠키 값은 다음과 같이 얻을 수 있습니다.

HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName].Value;

암호를 해독하는 겁니다

global.asax에 이 함수를 추가합니다.

protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
    string cookieName = FormsAuthentication.FormsCookieName;
    HttpCookie authCookie = Context.Request.Cookies[cookieName];

    if (authCookie == null)
    {
        return;
    }
    FormsAuthenticationTicket authTicket = null;
    try
    {
        authTicket = FormsAuthentication.Decrypt(authCookie.Value);
    }
    catch
    {
        return;
    }
    if (authTicket == null)
    {
        return;
    }
    string[] roles = authTicket.UserData.Split(new char[] { '|' });
    FormsIdentity id = new FormsIdentity(authTicket);
    GenericPrincipal principal = new GenericPrincipal(id, roles);

    Context.User = principal;
}

그러면 HttpContext를 사용할 수 있습니다.현재의.사용자. 아이덴티티.사용자 이름을 가져올 이름입니다.도움이 되기를 바랍니다

HttpCookie cook = new HttpCookie("testcook");
cook = Request.Cookies["CookName"];
if (cook != null)
{
    lbl_cookie_value.Text = cook.Value;
}
else
{
    lbl_cookie_value.Text = "Empty value";
}

참조 여기 클릭

언급URL : https://stackoverflow.com/questions/8490129/how-to-get-the-cookie-value-in-asp-net-website