C# asp.net域/子域身份验证无法正常工作

C# asp.net域/子域身份验证无法正常工作,c#,C#,我有一个w2k3服务器,它在iis下托管两个站点,比如Mysite.com和foo.Mysite.com 我正在尝试使用表单身份验证和单点登录 两个站点具有相同的机器密钥,并且相同的域前缀为。在web.configs中 我有两个问题: 1) 如果我转到并登录,然后导航到子域,它会将我重定向回登录页面 但是如果我进入并登录,然后导航到它工作的子域。那么,为什么它将www.mysite.com和mysite.com视为独立的域,从而使我的身份验证无效呢 我的理解是,添加domain=“.mysite

我有一个w2k3服务器,它在iis下托管两个站点,比如Mysite.com和foo.Mysite.com

我正在尝试使用表单身份验证和单点登录

两个站点具有相同的机器密钥,并且相同的域前缀为。在web.configs中

我有两个问题:

1) 如果我转到并登录,然后导航到子域,它会将我重定向回登录页面

但是如果我进入并登录,然后导航到它工作的子域。那么,为什么它将www.mysite.com和mysite.com视为独立的域,从而使我的身份验证无效呢

我的理解是,添加domain=“.mysite.com”将适用于该域下的所有子站点

2) 如果我将子域登录url更改为mysite.com而不是www.mysite.com并首先点击子域,它会重定向到登录表单,但当我登录时,它不会重定向到子域,而是在主站点上查找子域页面。i、 e.浏览到foo.mysite.com/bar.aspx,它会重定向到登录页面,登录后它会尝试显示mysite.com/bar.aspx,而不是我第一次请求的页面

任何解释和解决这些问题的帮助都是非常受欢迎的

谢谢

作为对此的更新。我在这个网站的其他地方找到了解决重定向问题的方法。我不知道为什么它不能像我期望的那样工作,但我现在可以把它划掉了


其次(无论如何,在我的测试系统上),通过编程指定域可以与www一起工作。而在配置文件中使用domain=”“则不行。

为什么要指定域?另外,为什么不使用配置继承呢?这可以跨应用程序池工作。

您稍微失去了我。我需要在配置文件中指定域,以便它适用于子域。配置文件正常工作,我遇到的问题是,如果我成功登录时首先点击,为什么它不会重定向回子域,以及为什么将www.放在我的域前面会导致.net将其视为一个单独的身份验证cookie。我明白了,我以为你使用子文件夹是出于某种原因。你看过这个帖子吗?是的,那篇文章让我尝试了编程。我想我必须记住,以后不要在配置文件中做太聪明的事情:)只有当
foo
www
中的虚拟应用程序时,配置继承才会应用。