表单身份验证,记录时间,从sqldatasource参数源中的加密cookie获取登录的用户名

时间:2012-07-15 21:21:28

标签: c# asp.net

我有一个sqldatasource和一个gridview。 我正在使用表单身份验证。

用户登录后,我正在加密他的名字

FormsAuthenticationTicket tkt;
      string cookiestr;
      HttpCookie ck;
      tkt = new FormsAuthenticationTicket(1, txtUserName.text, DateTime.Now, 
DateTime.Now.AddMinutes(30), true, false);
      cookiestr = FormsAuthentication.Encrypt(tkt);
      ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
      ck.Expires=tkt.Expiration;    
      ck.Path = FormsAuthentication.FormsCookiePath; 
      Response.Cookies.Add(ck);

在重定向的页面中,我需要在sqldatasource中设置,其中 - >参数来源:cookie

  • ,但

  • 1.我不知道cookie名称,因为我看到它没有。

  • 2.由于cookie被加密,sqldatasource必须使用解密的cookie..well ..我不知道该怎么做才能使用用户名字符串。

总而言之,我正在尝试隐藏他的名字,并在重定向页面中使用sqldatasource where条件中记录的用户名。我可以这样做,如果我不加密cookie但是..因为cookie可以编辑..我不希望ppl编辑cookie。

1 个答案:

答案 0 :(得分:0)

Ans 1. FormsAuthentication.FormsCookieName的默认名称是“.ASPXAUTH”。  但是,如果您希望覆盖该名称,则必须在config

中进行
<authentication mode="Forms">
  <forms loginUrl="login.aspx"
    cookieless="UseCookies"
    name=".NEW_COOKIE_NAME" />
</authentication>