form 验证 登陆验证后, IsAuthenticated总是 false ,怎么回事 啊?

baohua600 2007-01-10 04:31:17
login.aspx.cs
里面是:
FormsAuthentication.SetAuthCookie(sUserId,Cookie.Checked);

其他页面有些 上面判断 登录了没有
if(HttpContext.Current.User.Identity.IsAuthenticated)
{
}

登录, 其他页面上的 if(HttpContext.Current.User.Identity.IsAuthenticated)
总是false 了,

怎么回事呢???? 救命啊!!!!!



附:

<system.web>
<hostingEnvironment idleTimeout="20" shutdownTimeout="30"/>
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
<customErrors mode="Off" defaultRedirect="/Error.html" />

<authentication mode="Forms">
<forms loginUrl="/Login.aspx" defaultUrl="/Default.aspx" name="UserCookie" protection="All" timeout="40" path="/" />
</authentication>


</system.web>
...全文
688 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
翠花琳 2012-04-16
  • 打赏
  • 举报
回复
没解额!我也遇到了!
theillusion 2011-08-04
  • 打赏
  • 举报
回复
楼上,这是07年的帖子
rgqlovewlj 2011-08-04
  • 打赏
  • 举报
回复
问题解决了吗?我也是这个问题啊,怎么解决的,还忘楼主讲一下啊
hero4u 2007-01-14
  • 打赏
  • 举报
回复
应该是cookie 或者缓存问题吧。清空缓存和cookie试试看了。
都这么久了,也不把代码贴出来看一下,不交流怎么解决问题
bighead 2007-01-14
  • 打赏
  • 举报
回复
感觉应该是登录不成功,是不是FORMS验证的设置有问题?

把path="/"去掉试试
  • 打赏
  • 举报
回复
写一个验证票输出cookie即可
baohua600 2007-01-11
  • 打赏
  • 举报
回复
if(Page.User.Identity.Name !=string.Empty)


这个 也用了 ,还是不行 , 偶尔 可以 成功判断 已经通过验证 ,,

大部分时间 还是不能通过!!!!!


怎么半啊

baohua600 2007-01-11
  • 打赏
  • 举报
回复
验证表据tickets里面会保存登陆用户名了,

别人改动里面的内容 会不会有问题呢?
baohua600 2007-01-11
  • 打赏
  • 举报
回复
难道这个Page.User.Identity.IsAuthenticated 属性有什么问题 吗?


呵呵!!!!
hero4u 2007-01-10
  • 打赏
  • 举报
回复
..................................
就不要用
Page.User.Identity.IsAuthenticated 这个属性么
用这个属性if(Page.User.Identity.Name !=string.Empty)
一般你使用表单form登陆以后,验证表据tickets里面会保存登陆用户名了,可以通过Page.User.Identity.Name来读取用户名的信息。
没有登陆的话这个属性是空值即string.Empty了。
baohua600 2007-01-10
  • 打赏
  • 举报
回复
现在 搞得 真是 郁闷! , 大家帮帮忙啊!
ASP.NET Forms验证 实现子域名(SubDomain)共享登陆 http://www.cnblogs.com/Medi-Bruce/archive/2010/01/17/1650027.html 一、什么是单点登录    单点登录就是在多个web应用程序中,实现统一登录方式,一但登录了某web应用程序,其它相关联的web应用程 序都无需再次登录,一个地方退出,所有相关联的web应用程序都退出. 二、通过利用ASP.NET Forms验证模式 可以实现子域名(SubDomain)共享登陆下的缺陷 要利用Asp.NET Form验证模式实现 同一主域下不同子域名共享登陆状态需要进行以下配置 配置Web.config 1.把Asp.net的认证模式改为Forms认证模式,domain 要等于你的应用程序对应的域名,例如: .test.cn tication mode="Forms"> <forms name=".ASPNETFORM" domain=".test.cn" loginUrl="/login.aspx" defaultUrl="/default.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" /> tication> 2.配置针对存储在cookie中的票据信息进行加密解密的方式 tionKey="CF10047DB84FBA7F418BF30F9697B1D6EDDA3A90837F3C57B336B4016E47986135B31B2432F7CB20A6858DFFB E4E5ECD1451E17C91830993445D0EA5708BABBD" decryptionKey="5D37DDB652B86956" validation="SHA1"/> 备注:生成machineKey网址     http://www.aspnetresources.com/tools/keycreator.aspx 登陆创建验证票据 1.应用程序登陆页面(Login.aspx)输入用户名、密码并验证通过后,创建一张加密过的验证票据,并存储在cookie中 //创建验证FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, name, DateTime.Now, DateTime.Now.AddDays(1d), false, HttpContext.Current.Request.UserHostAddress ); string authTicket = FormsAuthentication.Encrypt(ticket); HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, authTicket); cookie.Domain = ConfigurationManager.AppSettings["SSODomain"]; HttpContext.Current.Response.Cookies.Add(cookie); 2.登陆完毕后进入有权限的页面,并可得到验证通过后的ID User.Identity.Name; if (!User.Identity.IsAuthenticated) { //未登录 Response.Redirect("/login.aspx"); } string name = User.Identity.Name; 3.登出页面,清空用户信息,并销毁票据 HttpContext.Current.Session.Clear(); FormsAuthentication.SignOut(); 三、Forms验证 实现子域名(SubDomain)共享登陆下的缺陷 根据以上讲解,均可实现同一主域名下的多个子域名共享登陆状态,但是主域名有所限制,当主域名为1个字母,而后缀为2个字母的域名,不能通过认证,例如:a.cn域名,a.jp域名 均不能实现子域名共享登陆,而其他域名均能实现,例如:a.test.com, a.sina.cn 等,大家亦可通过修改hosts文件试验一下,如有高手知道怎么解决这个问题的,请指教,谢谢!!并附上 Demo程序 ,请大家指教! PS:因本人公司的域名为p.cn,想通过Form认证的模式实现子域名共享登陆状态,但是死活用不上!~~!!汗,不知道这个算不算微软的Bug。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧