MVC 表单身份验证 - 如何处理服务器场上的托管?
我正在寻找有关这个主题的一些澄清。
我希望使用一台主机来托管我的网站,该主机将在服务器场上平衡我的网站的负载。
由于我的 MVC 站点使用表单身份验证,因此我认为每个服务器都能够验证客户端发送的身份验证 cookie 时会出现问题。
从其他帖子 - 我知道每个服务器都需要相同的机器密钥 - 如果他们这样做,那么每个服务器都可以读取身份验证cookie。
我需要澄清的是 - 我可以在我的 MVC 应用程序 web.config 文件中处理(或者我应该处理)这个问题吗?如果我在 web.config 中指定一个机器密钥(我当前正在做的事情) - 我假设这将是用于生成身份验证 cookie 和读取身份验证 cookie 的密钥。由于每个服务器都会有站点 web.config 的副本,所以我认为任何服务器都可以读取用户发送的 cookie。
我缺少什么?
在我的本地计算机上,我可以使用相同的 cookie 从 VS 开发服务器版本的网站转到我的本地主机版本的网站,并在两者上进行身份验证。 (似乎是类似的情况)
我相信这篇文章告诉我我的想法是正确的,但希望在返回托管提供商之前获得更多信息 - 表单身份验证在多个服务器上持久化
任何对此的深入了解以减轻我的无知将不胜感激。
谢谢, -D
I am looking for some clarity on this topic.
I am looking to host my site with a host that will load balance my site over a farm of servers.
Since my MVC site is using Forms Authentication, I assume there will be an issue with each server being able to authenticate the auth cookie sent by the client.
From other posts - I understand that each server needs the same machine key - if they do, then the auth cookie can be read by each server.
What I need clarity on is - can I handle (or, am i suppose to handle) this within my MVC application web.config file? If I am specifying a machine key in the web.config (what i am currently doing ) - I assume that will be the key used to generate the auth cookie and read the auth cookie. Since each server will have a copy of the site's web.config then I am thinking the cookie sent by the user can be read by any server.
What am I missing?
On my local machine i can go from the VS development server version of the site to my localhost version of the site with the same cookie and be authenticated on both. (seems like a similar scenario)
I believe this post tells me what I am thinking is correct but hoping for more info before going back to the hosting provider - forms authentication persistent across multiple servers
Any insight into this to alleviate my ignorance would be greatly appreciated.
Thanks,
-D
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,您可以在 web.config 中设置机器密钥,这样网络场上的所有节点都将能够解密身份验证 cookie。这就是你所需要的。
Yes, you can set the machine key in web.config and thus all nodes on the web farm will be able to decrypt the authentication cookie. That's all you need.
根据我在自托管环境中的经验,您(通常)会在 machine.config 级别处理此问题。在主机提供商尚未为您完成此操作的托管环境中,您应该在应用程序级别 web.config 中执行此操作。
In my experience in a self-hosted environment you would (typically) handle this at the machine.config level. In a hosting environment where the host provider doesn't have this already done for you, you should do this at your application level web.config.