为什么asp.net成员资格UserID没有存储在身份验证票证中?
我通过将我的userid(int)存储在身份验证cookie(
Storing and accessing a legacy UserID in asp.net membership)的UserData区域中来查看将我自己的User表链接到asp.net成员资格.
由于我的应用程序是供我自己使用,也是为了帮助我学习asp / c#,我认为比较调整成员资格以适应我的数据库与反向(即使用开箱即用的成员资格并调整)的努力可能是一个好主意.我的数据库相应). 如果我将我的数据库转换为在所有用户相关表中使用guid(uniqueidentifier)UserID作为外键,那么我仍然需要一种方法来使我的应用程序可以轻松访问UserID.获得UserID的可接受方式似乎是这样的: Guid userID = (Guid)Membership.GetUser().ProviderUserKey; 现在,如果我理解正确,这涉及到数据库的读取.也许我很挑剔,但每次请求似乎都没有必要.我倾向于把它放在票中.将PK值放入票证(guid或int)时,我看不出任何问题.是否存在安全风险?使用UserName作为密钥而不是代理,成员似乎很高兴.这引出了一个问题 – 他们为什么不把UserID放入票证? 解决方法
Cookie和URL具有实际的最大长度 –
FormsAuthenticationTicket.UserData文档指出:
ASP.NET可以配置为使用cookieless forms authentication,它将身份验证票证存储在URL中.在这种情况下,ASP.NET ISAPI过滤器还必须执行一些额外的工作来剥离票证信息,然后重写URL. 因此,部分原因可能归结为将默认cookie / URL长度保持在最低限度的权衡 – 在票证中存储加密的序列化Guid会增加cookie / URL的长度,并且还会进一步限制(您可以存储在UserData中的数据量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.NET(C#)中实现安全,独特的“一次性”激活URL
- ASP.NET Core Identity 实战(1)——Identity 初次体验
- asp.net – 当前上下文中不存在该名称
- asp.net-mvc-4 – / signalr / hubs未加载到asp.net mvc4:
- asp.net – 确保登录用户只能看到他们的数据的最佳方法
- 另一个“ASP.NET MVC适合我?”问题
- asp.net-mvc – 将变量与静态html连接起来的语法
- ASP.NET报告系统
- 无法显示ASP.Net UpdateProgress
- asp.net-mvc-3 – mvc3 jquery unobtrusive验证语言环境十进
- .net – 如何在请求标头上调用需要承载令牌的NSw
- entity-framework – 从Entity Framework 6升级到
- asp.net-mvc – Post Post和Comment应该在Post A
- asp.net-mvc – Asp.net MVC 1和Asp.net MVC 2之
- asp.net-mvc-3 – ASP.NET MVC 3编辑器模板中的I
- asp.net – iis将子域重定向到同一子域的子文件夹
- ASP.NET中App_Data等文件夹的作用
- asp.net – 如何访问Microsoft.Owin.Security.xy
- asp.net-mvc – 使用ASP.NET MVC作为电子邮件模板
- asp.net – 查找上一页Url