-2

我们在我们的域上使用表单身份验证(IIS 7 和 ASP.Net 3.5),www.ourbusiness.com并且没有问题。我们现在希望添加一些额外的 ASP.Net 服务器,这些服务器将位于稍微不同的域上newapp.ourbusiness.com——并且希望在 www.ourbusiness.com 上通过身份验证的人将在 newapp.ourbusiness 上进行身份验证。 com。

我已经看到有关如何解决此问题的分散报告,但有人可以提供额外的指导吗?例如,我的理解是,我们希望所有服务器使用相同的机器密钥,以便一个盒子上的身份验证 cookie 对所有其他盒子都有好处,这是我们已经在www.ourbusiness.com域上做的事情。但我不确定还需要什么,或者是否有文章解释了所涉及的步骤。感谢您的任何帮助。

4

1 回答 1

1

您可以自己处理创建FormsAuthenticationTicketand HttpCookie。这样您就可以设置 cookie 的域来处理您的子域。就像您说的那样,您的服务器也需要具有相同的机器密钥。

 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
        username,
        DateTime.Now,
        DateTime.Now.AddMinutes(30),
        isPersistent,
        userData,
        FormsAuthentication.FormsCookiePath);

      // Encrypt the ticket.
      string encTicket = FormsAuthentication.Encrypt(ticket);

      // Create the cookie.
      var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) 
      cookie.Domain = ".ourbusiness.com";
      Response.Cookies.Add(cookie);
于 2012-06-05T03:22:28.407 回答