MVC:记住用户名

时间:2014-01-29 19:35:09

标签: asp.net asp.net-mvc cookies

我想在我的MVC登录控制器中实现“记住用户名”功能。我只想记住用户名;我不想持久保存用户的身份验证cookie(正如“记住我”代码在MVC模板中所做的那样)。

我假设如果用户将“记住用户名”复选框设置为true,则控制器只需要将用户名保存在cookie中。如果用户随后点击我的登录页面,我会检查cookie是否存在,如果是,请设置“记住我的用户名”复选框并提供表单的用户名。听起来很简单;那么,为什么我在线查找示例以验证我的方法呢?

并且,在cookie中保存用户名是否存在安全隐患?这是相当敏感的信息;我想我想加密它。 ASP.NET中是否有任何可以轻松加密cookie的魔法,或者我需要“自己动手”?

有人可以为这种常见情况提供指导和“最佳实践”吗?

编辑:

你必须喜欢MS文档(如果你能找到它)。我追踪this article几乎涵盖了你想知道的有关cookie的一切。大多数示例都涉及保存用户名(就像我想要的那样)。但是,在 Cookie和安全性一节中,它说“永远不会将敏感数据存储在Cookie中,例如用户名......”叹息......

1 个答案:

答案 0 :(得分:1)

将明文用户名存储在cookie中仅用于预先填写登录表单,这是一种普遍接受的做法。 (有一些例外:例如,银行可能希望将用户名掩盖为额外的防御层。但是以安全的方式实现这一点并非易事 - 您不能只加密cookie并将其称为一天。这些是高度专业化的场景,普通开发人员不必担心。)

只是不要相信cookie中的数据。不要将它用作实际的登录cookie,不要将其写入未响应的响应(XSS),等等。