Smobiler上海石磨_.NET移动开发平台

标题: 不需要密码,也能进系统? [打印本页]

作者: Csharp    时间: 2016-4-30 23:24
标题: 不需要密码,也能进系统?
      最近在做一个程序,FormLogin 窗口验证密码,通过后进入FormMain。现发现一个问题:

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


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



作者: Csharp    时间: 2016-5-1 14:18
继续测试。 重启服务器,这时客户端登陆就会再从FormLogin进入。

想问的是在服务器不重启的情况下,怎么保下客户每次进和必须先从FormLogin进入
作者: Lincy.Lin    时间: 2016-5-3 10:20
Csharp 发表于 2016-5-1 14:18
继续测试。 重启服务器,这时客户端登陆就会再从FormLogin进入。

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

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

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

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

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

2.  顺带问一下客户变量,就是登录窗体保存用户名,密码哪个,也是放在缓存中的吗?或者是服务器上持续保存的? 重启服务器后,还有没有呢?

作者: vicky    时间: 2016-5-4 22:16
Csharp 发表于 2016-5-3 11:07
但有一个场景,我手机进去时,合法。手机直接退出来时,密码改掉了,再进,因为有缓存,哪么还是合法。哪 ...

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

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



作者: Csharp    时间: 2016-5-5 17:58
vicky 发表于 2016-5-4 22:16
1.这个可能是我们一种内部叫”Mirror ”的技术给你带来的困扰。Smobiler在设计中,我们采用了”Mirror ” ...

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

我想到的一个简单方法是,每一个功能,或是每一个 from 打开时,都再去检证用户是否存在,用户的登陆密码是否还等于保存的当前会话变量密码。。。。
作者: vicky    时间: 2016-5-6 10:57
Csharp 发表于 2016-5-5 17:58
哪有没有好的办法处理这种问题呢。设如管理员给一个员工更改了密码,或是删掉了员工,受“Mirror"影响的 ...

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


2.嗯,可以在Form事件中加以判断,或者在业务对象中加以判断都是ok的哈




欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.cn/) Powered by Discuz! X3.2