使用Framework 4.0
场景1:
我是使用Live.com登录的。
Live.com FormsAuthenticationTicket中的值不是空的& ticket.name是我的UserID。
Local.com FormsAuthenticationTicket中的参数为空。
但我不知道这里遗漏了什么。
场景2:
我是使用Local.com登录的。
Local.com FormsAuthenticationTicket中的值不是空的& ticket.name是我的UserID。
Live.com FormsAuthenticationTicket中的参数为空。
我的计算机配置设置在本地站点和实时站点中相同
目标框架为4.0
ApplicationAuthenticate_request如下所示:
HttpCookie AuthCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket ticket = null;
if (AuthCookie != null)
{
try
{
ticket = FormsAuthentication.Decrypt(AuthCookie.Value);
if (ticket != null && ticket.Name != null)
Response.Write(ticket.Name);
}
catch (Exception ex11)
{
string sErr = ex11.Message + ex11.StackTrace;
}
}登录代码如下
authenticationTicket = new FormsAuthenticationTicket(UserId, mPersistant, 30);
//FormsAuthenticationTicket authenticationTicketV1 = new FormsAuthenticationTicket(1, userGuid,DateTime.Now, DateTime.Now.AddMinutes(30), lPersistant, "User");
string authEncrypt = FormsAuthentication.Encrypt(authenticationTicket);
FormsAuthenticationTicket authTickChk = FormsAuthentication.Decrypt(authEncrypt);
bool bChk = authTickChk.Name.Equals(authenticationTicket.Name);
// Create form identity from FormsAuthenticationTicket.
id = new FormsIdentity(authenticationTicket);
// Set the Context User
HttpContext.Current.User = this;发布于 2012-04-07 13:09:59
你说的machine.config是指web.config吗?如果您的web.config文件不同,这可能是问题所在
<authentication mode="Forms">
<forms loginUrl="member_login.aspx"
cookieless="UseCookies"
domain="contoso.com" />
</authentication>您的浏览器只会将FormsAuth cookie提交到web.config文件中指定的域,也许您在每个环境中将此设置为不同的域?
发布于 2015-09-11 01:19:20
听起来表单身份验证cookie没有被发送到其他站点,这是预期的行为。需要认识到的是,表单身份验证只是一个传递加密值的cookie。表单身份验证票证仍然遵守cookie的所有规则,其中包括永远不会将一个站点(live.com)设置的cookie发送到另一个站点(local.com)的规则。
另外,我建议您使用FormsAuthentication.SetAuthCookie()来登录您的用户。登录代码似乎未设置cookie。
像Fiddler这样的工具可能会帮你把事情搞清楚。当您登录时,响应应该包含一个类似于Set-Cookie: .ASPXAUTH=FC0C57A...; path=/; HttpOnly的标头
每个后续请求都将发送一个类似于Cookie: ASP.NET_SessionId=zcsmunozu0iqshwcvb11qu1m; .ASPXAUTH=FC0C57A...的标头
但是,只有在域与设置.ASPXAUTH cookie的站点相同时,浏览器才会发送cookie。
https://stackoverflow.com/questions/10040768
复制相似问题