用户
 找回密码
 立即注册

65

主题

184

帖子

998

积分

高级会员

Rank: 4

积分
998
发表于 2016-4-30 23:24:04
      最近在做一个程序,FormLogin 窗口验证密码,通过后进入FormMain。现发现一个问题:

      用户第一次通过FormLogin进入FormMain,这时,并不退回到FormLogin,而是在FormMain界面直接关掉smobiler,哪么下次进入时,就绕过了FormLogin 窗口验证,直接进入FormMain。


      再后试了官方 DEMO ,也存在这个问题。请问如果实现想像中的,每一次登入都要先在FormLogin 窗口验证密码,然后合法再进入FormMain


分享至 : QQ空间
0 人收藏
使用道具 举报 回复
发表于 2016-5-6 10:57:59
Csharp 发表于 2016-5-5 17:58
哪有没有好的办法处理这种问题呢。设如管理员给一个员工更改了密码,或是删掉了员工,受“Mirror"影响的 ...

1.其实这和"Mirror"无关。比如你开发的一个Web应用或者其他应用,当一个用户正在使用,管理员修改了密码或者删除了用户,同样也是存在这样的情况的。


2.嗯,可以在Form事件中加以判断,或者在业务对象中加以判断都是ok的哈
使用道具 举报 回复 支持 反对
发表于 2016-5-1 14:18:02
继续测试。 重启服务器,这时客户端登陆就会再从FormLogin进入。

想问的是在服务器不重启的情况下,怎么保下客户每次进和必须先从FormLogin进入
使用道具 举报 回复 支持 反对
发表于 2016-5-3 10:20:24
Csharp 发表于 2016-5-1 14:18
继续测试。 重启服务器,这时客户端登陆就会再从FormLogin进入。

想问的是在服务器不重启的情况下,怎么保 ...

感谢您的反馈。
在FormMain界面直接关掉smobiler,下次再进入FormMain界面是因为我们的服务器会缓存当前的用户的连接,缓存当前用户的界面,所以在用户登陆后,会直接显示最后一次操作的界面。
这样操作的好处是,在用户网络不稳定的时候,可以防止用户数据和操作丢失,类似微信一样。
使用道具 举报 回复 支持 反对
发表于 2016-5-3 11:07:42
Lincy.Lin 发表于 2016-5-3 10:20
感谢您的反馈。
在FormMain界面直接关掉smobiler,下次再进入FormMain界面是因为我们的服务器会缓存当前 ...

但有一个场景,我手机进去时,合法。手机直接退出来时,密码改掉了,再进,因为有缓存,哪么还是合法。哪如果缓存了,哪我只,再验证是否合法再执行了能在每一个功能点。

顺着这个思路,再问两个相关的:

1.  有没有办法通过代码清理缓存,这样我可以自主控制哪些地方要清缓存

2.  顺带问一下客户变量,就是登录窗体保存用户名,密码哪个,也是放在缓存中的吗?或者是服务器上持续保存的? 重启服务器后,还有没有呢?
使用道具 举报 回复 支持 反对
发表于 2016-5-4 22:16:39
Csharp 发表于 2016-5-3 11:07
但有一个场景,我手机进去时,合法。手机直接退出来时,密码改掉了,再进,因为有缓存,哪么还是合法。哪 ...

1.这个可能是我们一种内部叫”Mirror ”的技术给你带来的困扰。Smobiler在设计中,我们采用了”Mirror ”技术去避免各种异常带来糟糕的用户体验。针对"Mirror"技术,我们为此写了一篇帖子来进行说明,帖子地址:http://www.smobiler.com/bbs/foru ... read&tid=577&extra=

2.客户变量是存在于客户端缓存中的。


使用道具 举报 回复 支持 反对
发表于 2016-5-5 17:58:20
vicky 发表于 2016-5-4 22:16
1.这个可能是我们一种内部叫”Mirror ”的技术给你带来的困扰。Smobiler在设计中,我们采用了”Mirror ” ...

哪有没有好的办法处理这种问题呢。设如管理员给一个员工更改了密码,或是删掉了员工,受“Mirror"影响的话,都有可以,还能还原回去,还能做一些事。

我想到的一个简单方法是,每一个功能,或是每一个 from 打开时,都再去检证用户是否存在,用户的登陆密码是否还等于保存的当前会话变量密码。。。。
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册