FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 12181|回复: 12
打印 上一主题 下一主题

请问一下三石先生关于appbox的(新手提问)

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-23 09:21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
三石先生在你的appbox 例如:我创建一个窗体!我想获取appbox的cookie值   要怎么写呢?  

沙发
发表于 2013-1-23 10:14:14 | 只看该作者
Cookie和Appbox没关系,在客户端和服务器端都能获得,服务器端用Request.Cookies
板凳
 楼主| 发表于 2013-1-24 01:29:21 | 只看该作者
sanshi 发表于 2013-1-23 10:14
Cookie和Appbox没关系,在客户端和服务器端都能获得,服务器端用Request.Cookies

哦哦~原来是这样!!谢谢三石先生
地板
 楼主| 发表于 2013-1-24 02:40:42 | 只看该作者
Pure_thought 发表于 2013-1-24 01:29
哦哦~原来是这样!!谢谢三石先生

那我应该怎么获取  当前登录用户的ID呢??可以给一个代码吗?
5#
发表于 2013-1-24 03:14:05 | 只看该作者
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了。


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

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

ticket.UserData 是个字符串,你可以存储一个数组字符串,然后自己解析
8#
 楼主| 发表于 2013-4-11 07:47:15 | 只看该作者
sanshi 发表于 2013-4-11 07:23
ticket.UserData 是个字符串,你可以存储一个数组字符串,然后自己解析

真的 不是很懂- -
9#
发表于 2013-4-11 08:34:10 | 只看该作者
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"]}
10#
 楼主| 发表于 2013-4-11 09:53:45 | 只看该作者
sanshi 发表于 2013-4-11 08:34
这里的roleIds参数是字符串,本来传入的是一个JSON数组字符串 ["roleid1", "roleid2", "roleid3"]

不过 ...

那我改了 会不会影响到APPBOX的功能?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-22 08:14 , Processed in 0.048800 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表