请高手指教如何控制一台机器上只能有一个用户注册及登陆网站?
解决方案 »
- wince中,为了引用命名空间System.Web.Security
- VS2005中的这种写法,VS2008里面怎么写?
- 如何从数据库中读取内容添加到TreeView中?
- asp.net怎么把本地视频文件上传到数据库里
- asp中调用.exe文件,高手请指教,谢谢了
- 关于做外包能否学到东西的讨论
- 看看这篇文章,如果你觉得好,顶一下
- DataGrid导入Excel,大家遇到这样的问题吗?在线....
- 急救:怎样把SQL SERVER2000中的数据导成access的.mdb文件?
- dropdownlist控件在IE上为什么没显示啊?
- aspx页面中的问题
- 请大家帮忙:在调用WEBSERVICE,添加WEB引用时出现如下错误.在线等....
在程序里边取一下计算机物理名,保存到数据库用户表中。新用户注册的时候check一下。关于登录:
如果楼主想要达到用户必须用注册时使用的计算机进行登录的话,在登录的时候也要验证下当前使用的计算机是否是注册时的计算机,如果楼主只是限制一台电脑只能登录一个用户,而不管这个用户是在哪台电脑上注册的,那就在登录时做个ip验证就行了,相当于一个ip同一时刻只能一个用户在线。
guid:
GUID 是微软对 UUID(统一唯一标识)的解释,理论上在整个空间和时间维上是唯一的,因此使用 GUID 来代替真实名称,可以防止系统中有两个相同名称的对象而造成混淆。
一个 GUID 是一个128位长(16字节)的数,形如 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。其中前4字节为随机数;5-8字节为时间戳,记录了从1490年开始到该GUID的生成时间(低16位字在前,以分钟为单位),从而保证了时间上的唯一;9-10字节与机器重启次数有关;最后6字节一般为该机器的网卡地址(如果这台机器没有网卡,则使用另一常数),从而保证了空间上的唯一。
在系统中,GUID 保存在注册表的 HKEY_CLASSES_ROOT 项下。HKEY_CLASSES_ROOT 其实是 HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\ 的快捷键,里面有很多长长的字串命名的子项,这些字串就是 GUID。在 HKEY_CLASSES_ROOT 下的 GUID 又分为4部分:
程序ID:
如 Access.Application 等,其中 Access 表示类所在 DLL/EXE 文件名,Application 是类的名称。虽然程序ID较类ID易用,但因为它并不一定是唯一的,因此可能造成混乱。在 VB 和 VJ++ 中程序员只能使用程序ID,不过这两种语言允许程序ID长达39个字符,因此完全可以取一个与 GUID 完全相同的程序ID,从而保证程序ID也是唯一的。
CLSID:
在这个子键下列出了在机器上注册过的所有类ID。在每个GUID键下。可以找到所有关于这个类ID的信息。如果该类ID对应一个DLL,则DLL文件名在 InprocServer32 子键下;如果是本地的一个EXE程序,则文件名在 LocalServer32 子键下;如果是远程EXE,则有一个 AppID 子键指向 AppID 键的入口。
AppID:
在这个子键下列出了每个远程 DLL/EXE 的启动参数,包括对象位置、文件名等。
Interface:
在这个子键下列出了本地系统中所有注册过的类的 GUID。在其中每个 GUID 键下,都保存着代理的类ID,当其他应用程序要与它通信时就使用这个ID传入传出参数。
2.我是B/S架构,无法读取注册表,该怎么办?
<!--
net = new ActiveXObject("WScript.Network");
alert(net.ComputerName);
//-->
</script>这段脚本可以取到计算机名,不过 需要降低ie的安全等级,这么做商业应用肯定是不允许的了。
B/S架构在客户端是存在权限问题的,在权限范围内考虑你这个问题是很难有一个通用的方法去实现,因此你需要采用ActiveX控件,或者专门开发一个客户端软件供用户去注册和登录。