我在web.config里profile中创建了一个变量去记录用户登录的状态,这个变量也设置为匿名不可用了 
在用户A登陆后,把他的这个变量改写为真,在退出的时候再改为假,其它地方都没有动过这个变量的,而且每次修改后我都调用profile.save()保存了一下。 
可是在用户A登出,再一次登陆的时候,我读取对应这个用户的profile中这个变量还是为真!?明明登出的时候改为假了的,怎么会这样? 
难道是在不同的页面profile值会变来变去的?
请高手赐教!最近狂问这一类问题

解决方案 »

  1.   

    你登录的时候系统会自动保存你登录的信息啊  比如Cookie 或者Session等  你退出的时候需要删除啊 不然除非它过期  不然总是为真啊
      

  2.   

    请看清楚我的问题,我不是读取系统自动记录的东西啊,我是自己在profile里面设置变量,自己在登录登出的时候改变这个变量的值,profile的值存在服务器端的数据库中,跟客户端没有关系啊= =||!!
      

  3.   

    再一次登陆的时候,我读取对应这个用户的profile中这个变量还是为真!?明明登出的时候改为假了的,怎么会这样? 
    难道是在不同的页面profile值会变来变去的? 登陆不就改为TRUE了吗...再读当然是真了.楼主.不是你说明白就是我们楼下的IQ都没你高.
      

  4.   

    退出时改写为假是在什么时候发生的?是在用户正式退出后,还是准备退出的时候?如果用户退出登录后,再profile.Some = false;的话,可能就不会存到刚才登录用户对应的profile里了。
      

  5.   

    唉,我真是没说清,再说一遍好了
    我是在login控件的LoggingIn响应函数里面读取用户名对应的profile的,这个时候membership还没有进行身份验证,如果以前没有登陆过的话,这个用户的profile为假,就允许他登陆。
    然后在LoggedIn的响应函数里面把profile的值改为真,这个时候已经进行了身份验证。接着用户登出,我在在LoggingOut的响应函数里面把这个用户的profile的值改为假,而且是在调用FormsAuthentication.SignOut()这个函数之前。这个流程错了么?然后用户再次登录,还是在LoggingIn里面读取这个用户名对应的profile,这个时候profile居然还是为真
    怎么回事呢?