好吧,我是网络开发的新手,所以我可能会错误地看到这些术语中的一些.我提前道歉.
我无法理解身份验证的不同元素.似乎有人建议不要使用每种方法,但并不总是有明确的理由.我正在为可以访问数据库的公司构建一个Web应用程序,所以我想确保它是安全的.
所以我看到通常用于存储信息的三个地方.
FormsAuthentication.SetAuthCookie().这将存储将与浏览器一起显示的会话cookie,并且客户端上没有任何敏感信息.但是,它只能存储一个值.这个 stackoverflow答案显示了一种在这里存储多个值的方法,但是给出它的人说不使用它,但不是为什么.
的FormsAuthenticationTicket.我不知道这些信息存储在何处,但它允许存储多个值的简单方法.根据文档要求保护它,需要调用Encrpty()来存储,并解密()来检索.这看起来很浪费,但我知道什么.
Session ["SomeRef"] = new CustomObject().这个问题的第二个答案解释了如何做到这一点,但对它的评论称它很危险,因为它可能被盗.这看起来对我来说是最好的方法,因为信息仍然存储在服务器上,并且可以存储多个值.
我找不到这些方法的任何比较,或者在验证用户之后存储多条信息的"最佳实践"方式的良好解释.信息只是用户名和他们的userId.
我刚刚使用FormsAuthentication,我想在web配置中使用表单身份验证标记的timeout属性值.在4.0中我们可以通过FormsAuthentication.Timeout.TotalMinutes(参考:FormsAuthenticationTicket.expiration v web.config值超时)获取此信息.您能告诉我如何在.NET 2.0中获得相同的内容吗?