4

这是我的配置文件的一部分

<authentication mode="Forms">
   <forms loginUrl="~/Account/Login" timeout="2880" enableCrossAppRedirects="true"
          name="authtoken" domain="localsite.com" />
</authentication>

这是我的身份验证方法

public void Authenticate(string token, int userId)
{
    var userData = new FormTicketUserData() {UserId = userId};
    var ticket = new FormsAuthenticationTicket(1, token, DateTime.Now, DateTime.MaxValue,  
                                               false, userData.ToString());
    var encryptString = FormsAuthentication.Encrypt(ticket);
    var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptString);
    authCookie.Path = FormsAuthentication.FormsCookiePath;
    HttpContext.Current.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
    HttpContext.Current.Response.Cookies.Add(authCookie);
    HttpContext.Current.User = new MyFormsPrincipal(new FormsIdentity(ticket), userId);
    UserContext.Refresh();
}

当我在 www.localsite.com 上进行身份验证时,我不在 localsite.com 上进行身份验证,反之亦然。
当我在 www.localsite.com 上进行身份验证时,我也需要在 localsite.com 上进行身份验证。
我怎样才能做到这一点。

4

1 回答 1

0

这解决了问题

authCookie.Domain = "localsite.com";
于 2013-04-02T12:03:40.187 回答