ASP.NET MVC - 跨子域身份验证/成员身份
在实现基于子域的语言切换器时遇到障碍< /a>(en.domain.com 加载英语,jp.domain.com 加载日语)。
如何让单一会员系统跨多个子域工作 (ASP.NET MVC C#)?
看到一些关于将 domain="domain.com"
添加到
web.config 中的条目。 是这样吗,但是在本地 Visual Studio 开发 Web 服务器上测试时这有效吗?
Hit a roadblock while implementing a sub domain based language switcher (en.domain.com loads English, jp.domain.com loads Japanese).
How do I get a single membership system to work across multiple sub domains (ASP.NET MVC C#)?
Saw something about adding domain="domain.com"
to <forms >
entry in web.config. Did that, but does that work when testing on local visual studio development web server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试自己创建 cookie。
在 AccountController 中,您会发现:
“创建并添加到 cookie 集合”。 它不允许修改域(但奇怪的是允许修改路径)。 相反,创建一个 cookie 而不添加到集合中,修改必要的属性,然后添加到集合中:
James
Try creating the cookie yourself.
In AccountController you'll find this:
that "creates and adds to the cookie collection". It doesn't allow modification of the domain (but does allow modification of the path, oddly). Instead create a cookie without adding to the collection, modify the necessary properties, then add to the collection:
James
您必须使用点前缀,如下所示。
You have to use dot prefix, like this.
您的问题是浏览器如何在请求期间发送 cookie。
Cookie 通常绑定到单个域,这是出于安全原因和性能考虑。 例如,用户不想将您的域的 cookie 发送到任何其他域,因为您的 cookie 可能包含敏感信息。
浏览器会区分使用 en.domain.com 和 jp.domain.com 设置的 cookie。 他们不允许来自一个域的 cookie 转到另一个域,因为它们不在父域上。
解决您的问题的方法是接管生成 cookie 的控制权。 我没有太多使用 ASP.NET MVC,但我确信它可以通过属性或其他方式来完成,而不是通过 HTML。 这是一个非常常见的场景。 您应该将生产盒的 cookie 域设置为“domain.com”,这是正确的。 如果您在本地机器上工作,则应将 cookie 域设置为“”。
Your problem is how browsers sends cookie during request.
Cookie is generally tied to a single domain, this is for security reasons and performance. For example, user don't want to send cookie for your domain to any other domain, because your cookie may contain sensitive information.
Browser do differentiate between cookies set with en.domain.com and jp.domain.com. They do not allow cookies from one domain goes to the other because they are not on a parent domain.
The solution to your problem would be to take over the control of generating cookies. I haven't played much with ASP.NET MVC, but I'm sure it can be done not through the HTML but through a property or something. This is a very common scenario. You should set the cookies domain to "domain.com" for your production boxes, that is correct. If you're working on a local box, you should set the cookies domain to "".