当前位置: 首页 > 编程语言 > C#

ASP.NETMVC-跨子域身份验证-成员共享

时间:2023-04-10 18:57:44 C#

ASP.NETMVC-跨子域身份验证/成员身份在实现基于子域的语言切换器时上路(en.domain.com加载英语,jp.domain.com加载日语)。如何让单个会员系统跨多个子域工作(ASP.NETMVCC#)?请参阅将domain="domain.com"添加到web.config中的条目。确实如此,但是在本地visualstudio开发Web服务器上测试时它是否有效?尝试自己创建cookie。在AccountController中,您会发现:FormsAuthentication.SetAuthCookie(userName,createPersistentCookie);“创建并添加到cookie集合”。它不允许修改域(但奇怪的是允许修改路径)。相反,在不添加到集合的情况下创建cookie,修改必要的属性,然后添加到集合:vara=FormsAuthentication.GetAuthCookie(userName,createPersistentCookie);//如果你在这里调试,a.Domain应该是en.example.com;改变它a.Domain="example.com";HttpContext.Current.Response.Cookies.Add(a);詹姆斯,你必须像这样使用点前缀。您的问题是浏览器在请求期间如何发送cookie。出于安全原因和性能考虑,Cookie通常绑定到单个域。例如,用户不想将某个域名的cookie发送到任何其他域,因为您的cookie可能包含敏感信息。浏览器可以区分使用en.domain.com和jp.domain.com设置的cookie。他们不允许来自一个域的cookie转到另一个域,因为它们不在父域中。解决问题的方法是接管生成cookie的控制权。我没有玩过ASP.NETMVC,但我确信它不是通过HTML而是通过属性或其他东西完成的。这是一种很常见的情况。您应该将生产箱的cookie域设置为“domain.com”,这是正确的。如果您使用的是本地盒子,则应将cookie域设置为“”。以上就是C#学习教程:ASP.NETMVC-跨子域认证/成员共享的全部内容。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文来自网络合集,不代表立场,如涉及侵权,请点击右转联系管理员删除。如需转载请注明出处: