我试图理解ASP.NET MVC中的身份验证是如何工作的。我不希望内置的MembershipProvider在幕后创建本地数据库。我还看了一些关于自定义成员资格提供者的博客文章。在寻找更简单的表单身份验证模型时,我发现了以下内容:
FormsAuthentication.SetAuthCookie("myusername", true);
FormsAuthentication.SignOut();
我们的想法是将用户名和盐渍哈希密码发送到数据库,看看它们是否与那里的记录匹配。如果用户存在,则将用户名传递给SethAuthCookie。我的问题是:
答案 0 :(得分:3)
用户名是否应加密?
没有
如果有多个服务器并且用户正在浏览,会发生什么 网站?我相信任何一台服务器都可以提供内容 用户,那么他们如何知道用户是否已经过身份验证?
在每次请求时,服务器都会读取客户端浏览器发送的身份验证cookie,该身份验证由FormsAuthentication.SetAuthCookie
调用生成,解密并检索存储在其中的用户名。只需确保为服务器场的所有节点设置了相同的计算机密钥,这样无论哪个节点发出了身份验证cookie,所有其他节点都可以解密它。
在没有使用MVC的情况下验证用户的首选方法是什么 供应商?我是在正确的轨道还是我应该调查 别的什么?
你走在正确的轨道上。一旦验证密码哈希与数据库中的用户之一匹配,并使用FormsAuthentication.SetAuthCookie
属性检索当前已验证的后续操作,则使用User.Identity.Name
方法发出身份验证cookie用户。
我还建议您查看following article,它可以很好地概述表单身份验证在ASP.NET中的工作原理。