FineUI 官方论坛

标题: 请问一下三石先生关于appbox的(新手提问) [打印本页]

作者: Pure_thought    时间: 2013-1-23 09:21
标题: 请问一下三石先生关于appbox的(新手提问)
三石先生在你的appbox 例如:我创建一个窗体!我想获取appbox的cookie值   要怎么写呢?  


作者: sanshi    时间: 2013-1-23 10:14
Cookie和Appbox没关系,在客户端和服务器端都能获得,服务器端用Request.Cookies
作者: Pure_thought    时间: 2013-1-24 01:29
sanshi 发表于 2013-1-23 10:14
Cookie和Appbox没关系,在客户端和服务器端都能获得,服务器端用Request.Cookies

哦哦~原来是这样!!谢谢三石先生
作者: Pure_thought    时间: 2013-1-24 02:40
Pure_thought 发表于 2013-1-24 01:29
哦哦~原来是这样!!谢谢三石先生

那我应该怎么获取  当前登录用户的ID呢??可以给一个代码吗?
作者: sanshi    时间: 2013-1-24 03:14
Pure_thought 发表于 2013-1-24 02:40
那我应该怎么获取  当前登录用户的ID呢??可以给一个代码吗?

可以看登录时存储在Cookie中数据:
  1. FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
  2.                 user.Name,
  3.                 DateTime.Now,
  4.                 DateTime.Now.AddMinutes(120),
  5.                 true,
  6.                 roleIds,
  7.                 FormsAuthentication.FormsCookiePath);
  8.             string hashTicket = FormsAuthentication.Encrypt(ticket);
  9.             HttpCookie userCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashTicket);
  10.             userCookie.HttpOnly = true;
  11.             userCookie.Expires = DateTime.Now.AddMinutes(120);
  12.             Response.Cookies.Add(userCookie);
  13.             Response.Redirect(FormsAuthentication.DefaultUrl);
复制代码
由于没有存储用户ID,所以在服务器端拿不到用户ID,不过可以拿到用户名:User.Identity.Name

以及用户所属的角色列表:
  1. protected string GetIdentityRoleIDs()
  2.         {
  3.             FormsAuthenticationTicket ticket = ((FormsIdentity)User.Identity).Ticket;
  4.             return ticket.UserData;
  5.         }
复制代码
当然,你也可以把用户ID存储在Cookie中,这样就能拿到用户ID了。



作者: Pure_thought    时间: 2013-4-11 06:40
sanshi 发表于 2013-1-24 03:14
可以看登录时存储在Cookie中数据:由于没有存储用户ID,所以在服务器端拿不到用户ID,不过可以拿到用户名 ...

三石先生那现在我想加多一个ID  要怎么写的代码呢?  您可以发我一个添加ID的代码吗?
作者: sanshi    时间: 2013-4-11 07:23
Pure_thought 发表于 2013-4-11 06:40
三石先生那现在我想加多一个ID  要怎么写的代码呢?  您可以发我一个添加ID的代码吗? ...

ticket.UserData 是个字符串,你可以存储一个数组字符串,然后自己解析
作者: Pure_thought    时间: 2013-4-11 07:47
sanshi 发表于 2013-4-11 07:23
ticket.UserData 是个字符串,你可以存储一个数组字符串,然后自己解析

真的 不是很懂- -
作者: sanshi    时间: 2013-4-11 08:34
Pure_thought 发表于 2013-4-11 07:47
真的 不是很懂- -
  1. FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
  2.                 user.Name,
  3.                 DateTime.Now,
  4.                 DateTime.Now.AddMinutes(120),
  5.                 true,
  6.                 roleIds,
  7.                 FormsAuthentication.FormsCookiePath);
复制代码
这里的roleIds参数是字符串,本来传入的是一个JSON数组字符串 ["roleid1", "roleid2", "roleid3"]

不过你可以放任意数据到这里面,比如你可以传递一个JSON对象字符串:{"yourkey":"yourvalue", "roleids": ["roleid1", "roleid2", "roleid3"]}
作者: Pure_thought    时间: 2013-4-11 09:53
sanshi 发表于 2013-4-11 08:34
这里的roleIds参数是字符串,本来传入的是一个JSON数组字符串 ["roleid1", "roleid2", "roleid3"]

不过 ...

那我改了 会不会影响到APPBOX的功能?
作者: sanshi    时间: 2013-4-11 13:50
Pure_thought 发表于 2013-4-11 09:53
那我改了 会不会影响到APPBOX的功能?

当然会了,不过你把读取的地方也改下就好了
作者: Pure_thought    时间: 2013-4-12 14:16
sanshi 发表于 2013-4-11 13:50
当然会了,不过你把读取的地方也改下就好了

这样啊~  我还想问下  怎么取当前用户的权限ID呢?
作者: appletreegd    时间: 2013-4-16 15:57
Pure_thought 发表于 2013-4-11 09:53
那我改了 会不会影响到APPBOX的功能?

亲,不会的




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4