当前位置: 技术问答>java相关
关于在线身份确认的问题
来源: 互联网 发布时间:2015-06-10
本文导语: 客户端是怎么向服务端通过身份确认的? 我这有服务端的url和port,还有用户名username以及密码password。 通常应该怎么样做才可以先连接到服务器再进行身份确认? 请给出示范,望赐教。 Thanx! | 具体实...
客户端是怎么向服务端通过身份确认的?
我这有服务端的url和port,还有用户名username以及密码password。
通常应该怎么样做才可以先连接到服务器再进行身份确认?
请给出示范,望赐教。
Thanx!
我这有服务端的url和port,还有用户名username以及密码password。
通常应该怎么样做才可以先连接到服务器再进行身份确认?
请给出示范,望赐教。
Thanx!
|
具体实现方式很多!
你要是做application的话,用socket自己定义个子协议不就行了?
把验证单独做到一个bean里,这样代码重用性好!每次只要调用它就行了!
如:
SecurityConf.isLegalUser()
SecutityConf.confUser(String user,String password)
....
代码自己写吧!
我的是在web方式下的!
你要是做application的话,用socket自己定义个子协议不就行了?
把验证单独做到一个bean里,这样代码重用性好!每次只要调用它就行了!
如:
SecurityConf.isLegalUser()
SecutityConf.confUser(String user,String password)
....
代码自己写吧!
我的是在web方式下的!
|
如果是TCP/IP协议的话,应该是三次握手,然后把你的用户名和口令传给服务器吧!应该是在接受的时候一方断开的。具体我也不清楚,看看书再跟你聊!
|
客户端是在浏览器还是application?
1、浏览器:把username以及密码password传到server上验证,成功的话在session中添一个标志位为true!
2、application:把username以及密码password传到server上验证,成功的话,server向客户端传回一个成功标示,application接到后在本地的一个静态成员中设置其属性passSecurity 为true;以后每次访问服务器时,只要读客户端的这个属性,若为true则不需再验证!
当然passSecurity default value is false!
你可以用一个复杂的类来代替passSecurity以便放入更多的客户端信息,当然必须实现Serializable接口!
我想够详细了吧!
1、浏览器:把username以及密码password传到server上验证,成功的话在session中添一个标志位为true!
2、application:把username以及密码password传到server上验证,成功的话,server向客户端传回一个成功标示,application接到后在本地的一个静态成员中设置其属性passSecurity 为true;以后每次访问服务器时,只要读客户端的这个属性,若为true则不需再验证!
当然passSecurity default value is false!
你可以用一个复杂的类来代替passSecurity以便放入更多的客户端信息,当然必须实现Serializable接口!
我想够详细了吧!
|
知道服务器的验证servlet或JSP文件,及处理时需的参数,按照要求传参数就可以了。不过既然知道服务器的验证URL,它的验证机制应该也知道啊,怎么还会问这个问题?
|
当然密码跟账号都是存在server上了,用不用数据库看你自己了!
passSecurity只是个标识而已,在客户端!
server验证成功后,发指定消息到client,client接受该消息后质passSecurity为true!
如果你比较关心client的其它信息的话!
你就应该采用一个类来代替passSecurity了!
passSecurity只是个标识而已,在客户端!
server验证成功后,发指定消息到client,client接受该消息后质passSecurity为true!
如果你比较关心client的其它信息的话!
你就应该采用一个类来代替passSecurity了!
|
有数据库的话:
客户端发个username/password
然后server端执行下面的SQL语句:
select * from 用户口令表 where 用户名='username' and 密码='password'
如果有返回记录,就说明验证成功。
没有则说明.....
客户端发个username/password
然后server端执行下面的SQL语句:
select * from 用户口令表 where 用户名='username' and 密码='password'
如果有返回记录,就说明验证成功。
没有则说明.....
|
做登录,一般有两种模型。
一种是以jive forum为代表,使用令牌模型。在这种模型下,用户初次登陆之后,通过密码验证,
就会获得一个“token”(令牌),然后再进入每一个功能模块(论坛板块)的时候都会由这个
模块自己进行检查,看要求进入者的令牌是否拥有进入或者其他操作的权限。
另一种是以Pow2ACL为代表,使用ACL模型。ACL就是Access Control List,他包含三个主要
的实体:用户,资源和角色。
资源是一张表,列出了所有的系统资源;
用户可能具有多种角色;
在另一张表中体现角色和资源之间的关系。比如对订单(资源),办公室经理(角色)具有
察看,新增和修改的权限,而仓库发货员(角色)只具有查看的权限。
谢谢。
一种是以jive forum为代表,使用令牌模型。在这种模型下,用户初次登陆之后,通过密码验证,
就会获得一个“token”(令牌),然后再进入每一个功能模块(论坛板块)的时候都会由这个
模块自己进行检查,看要求进入者的令牌是否拥有进入或者其他操作的权限。
另一种是以Pow2ACL为代表,使用ACL模型。ACL就是Access Control List,他包含三个主要
的实体:用户,资源和角色。
资源是一张表,列出了所有的系统资源;
用户可能具有多种角色;
在另一张表中体现角色和资源之间的关系。比如对订单(资源),办公室经理(角色)具有
察看,新增和修改的权限,而仓库发货员(角色)只具有查看的权限。
谢谢。
|
如果都正确则设置一个SESSION表明用户处于登陆状态,
用户退出时只要清空SESSION即可
用户退出时只要清空SESSION即可
|
楼上的每个用户登陆时都要进行2次数据库查询,效率低。
如果想判断是否有此用户,可以先进行完全匹配的查询,如果没有,
再查询此用户是否存在。
但一般这种需求很少。
如果想判断是否有此用户,可以先进行完全匹配的查询,如果没有,
再查询此用户是否存在。
但一般这种需求很少。
|
你是不是要访问数据库,说的是数据库的验证是如何验证?