使用Framework 4.0
情景1:
使用Live.com签名。
在Live.com FormsAuthenticationTicket不是null& ticket.name是我的UserID
在Local.com中,FormsAuthenticationTicket为空。
我不知道这里缺少什么。
情景2:
使用Local.com签名。
在Local.com中,FormsAuthenticationTicket不是null& ticket.name是我的UserID
在Live.com FormsAuthenticationTicket中为空。
我的机器配置设置在Local&直播网站
目标框架是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;
答案 0 :(得分:1)
通过machine.config你的意思是web.config?如果您的web.config文件不同,这可能是问题
<authentication mode="Forms">
<forms loginUrl="member_login.aspx"
cookieless="UseCookies"
domain="contoso.com" />
</authentication>
您的浏览器只会将FormsAuth cookie提交到web.config文件中指定的域,也许您在每个环境中将其设置为不同的域?