社区
C#
帖子详情
在网页中,怎么获取客户端当前计算机的登录用户? 急..
MyLf
2006-03-04 12:02:59
如题。
在google和baidu搜索了,好像没有相关的资料。。。
...全文
538
25
打赏
收藏
在网页中,怎么获取客户端当前计算机的登录用户? 急..
如题。 在google和baidu搜索了,好像没有相关的资料。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MyLf
2006-03-07
打赏
举报
回复
up
Optione
2006-03-06
打赏
举报
回复
像X-Scan这样扫描软件,要获取NetBios信息,只要有防火墙,都取不到的.
再说知道了登陆名,跑密码还是可以的.
反正我是不会的,很难吧,帮你顶算了.
MyLf
2006-03-06
打赏
举报
回复
谢谢回复。。。
这是客户的要求,说是如果员工用自己的帐号和密码登录了计算机后,进入我们的系统(B/S的),就不要再去录入用户和密码了,就可以进去了。
其实,客户这种要求是很合理的,就类似于Sql Server的以Windows身份验证的方式登录
只知道登录用户名,黑客也不能干什么啊。
Optione
2006-03-06
打赏
举报
回复
不通过第3方控件,基本上很难(就像楼上那位兄弟说的:微软或许有办法)
已经很清楚了,如果那样能行的话,黑客们就可以庆祝了.
你们是怎么想出要那样的?不能换别的方式吗?
MyLf
2006-03-06
打赏
举报
回复
不要mark了,出点主意啦。。
hyena041
2006-03-06
打赏
举报
回复
mark
j_lei407
2006-03-06
打赏
举报
回复
mark
lingbo_wx
2006-03-06
打赏
举报
回复
期待中
MyLf
2006-03-06
打赏
举报
回复
此问题无解么?
MyLf
2006-03-06
打赏
举报
回复
那。。。
怎么用ActiveX解决这个问题?
Optione
2006-03-05
打赏
举报
回复
为这点功能,没必要花这么大的代价吧.
单靠浏览器要实现这样的功能,很难.
既然永许匿名登录,用ActiveX,对匿名用户来说感觉太麻烦了.
再说匿名用户,一定不喜欢你去获取的本地登陆账号,太危险了.很多扫描软件都做不到的.
Kshatriya
2006-03-05
打赏
举报
回复
存到表里面不行么?
Kingron
2006-03-05
打赏
举报
回复
设置网页安全级别为中,允许ActiveX:
http://lysoft.lz169.com/kingron/wql.htm
通过WQL语句应该可以做到,手边没有MSDN,你自己查查就知道了。
talantlee
2006-03-04
打赏
举报
回复
再看看
要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的IP。还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables ("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......
即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。
'通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
Private Function getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
李洪喜
2006-03-04
打赏
举报
回复
不太可能获得用户的登录ID吧。除非是微软可以实现。
singlepine
2006-03-04
打赏
举报
回复
浏览者操作系统的默认语言
Request.ServerVariables.Get("HTTP_ACCEPT_LANGUAGE")
客户端ip:
Request.ServerVariables.Get("Remote_Addr");
客户端主机名:
Request.ServerVariables.Get("Remote_Host");
服务器ip:
Request.ServerVariables.Get("Local_Addr");
服务器名:
Request.ServerVariables.Get("Server_Name");
获得用户登陆名
Request.ServerVariables.Get("LOGON_USER");
talantlee
2006-03-04
打赏
举报
回复
在做B/S结构的系统时,我们常常需要获取客户端的一些信息,如IP和MAC,以结合身份验证。在ASP.NET中,要获取服务器端的MAC很容易,但是要获取客户端的MAC的地址确要花费一翻心思,通常的做法是调用Win32API或直接调用nbtstat命令,这样做有很多问题,而另一种方法就是直接用客户端脚本,我们这里用Javascript,这样做的好处是不需要服务器端进行处理,有客户端自行获取,传递到服务器端,且速度和可靠性都比在服务器端获取好。
具体实现的html和javascript如下:
<HTML><HEAD><TITLE>WMI Scripting HTML</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<SCRIPT language=JScript event="OnCompleted(hResult,pErrorObject, pAsyncContext)" for=foo>
document.forms[0].txtMACAddr.value=unescape(MACAddr);
document.forms[0].txtIPAddr.value=unescape(IPAddr);
document.forms[0].txtDNSName.value=unescape(sDNSName);
//document.formbar.submit();
</SCRIPT>
<SCRIPT language=JScript event=OnObjectReady(objObject,objAsyncContext) for=foo>
if(objObject.IPEnabled != null && objObject.IPEnabled != "undefined" && objObject.IPEnabled == true)
{
if(objObject.MACAddress != null && objObject.MACAddress != "undefined")
MACAddr = objObject.MACAddress;
if(objObject.IPEnabled && objObject.IPAddress(0) != null && objObject.IPAddress(0) != "undefined")
IPAddr = objObject.IPAddress(0);
if(objObject.DNSHostName != null && objObject.DNSHostName != "undefined")
sDNSName = objObject.DNSHostName;
}
</SCRIPT>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post><INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr> <INPUT value=192.168.0.2 name=txtIPAddr> <INPUT value=typ name=txtDNSName> </FORM></BODY></HTML>
关键是用到两个ActiveX:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
不过这两个ActiveX都是系统自带,不用去下载或注册。
接下来的工作就是用脚本和ActiveX交互,脚本可以是js或Vbs我个人喜欢用js。
MyLf
2006-03-04
打赏
举报
回复
我当然指的是webform产生的页面啦
我是丁学
2006-03-04
打赏
举报
回复
单纯网页是做不到的,除非浏览者告诉你 :)
不过你可以通过ActiveX控件实现这个功能,就怕有些人会屏蔽
MyLf
2006-03-04
打赏
举报
回复
要是允许匿名登录,我还来问干什么?
这是B/S系统(公司内部的,如果在公司外部用,则允许匿名登录,但提供的功能有限)。用户名就是各计算机上的登录名了。
有单点登录的意思。
用户用他的计算机帐号登录后,直接打开你的网页就可以进去了,不需要再让他录入用户名和密码。
加载更多回复(5)
2026年最新新昌市公交线路及站点矢量数据.zip
数据格式:shp 数据坐标:GCJ02 数据更新时间:2026年9月 公交线路来源:8684网站 https://8684.com.cn/ 站点数据来源:高德API接口 数据打开方式:QGIS或Arcgis 站点数据字段:名称、序号、对应线路、几何信息 线路数据字段:名称、类型、起点、终点、开始时间、结束时间、起步价、全价、长度、公司、几何信息
CSDN首页 发布文章 CSDN同步助手 无人机基于GWO算法、MP-GWO灰狼算法、灰狼-布谷鸟优化算法、CS-GWO多种群灰狼优化算法的无人机路径规划(Matlab代码实现) 70 10
内容概要:本文详细复现并实现了“电动汽车聚合可行域的内-外结合近似方法”的Matlab代码,旨在通过对大量电动汽车充放电能力的建模,构建其聚合可行域的内近似与外近似集合,从而科学刻画电动汽车集群作为柔性资源参与电网调度的整体潜力。研究基于多面体理论,系统阐述了电动汽车集群聚合建模的技术流程,并将其集成至包含分布式电源、储能系统及常规负荷的微电网经济调度模型
中
,验证该方法在提升系统运行经济性、灵活性与可再生能源消纳能力方面的有效性。文
中
不仅提供了完整的数学模型推导与优化框架,还深入分析了模型特性及其在虚拟电厂、车网互动(V2G)等新兴电力系统场景
中
的应用前景。; 适合人群:具备电力系统分析基础和Matlab编程能力的研究生、科研人员,以及从事新能源并网、智能电网、需求响应和能源互联网相关领域的工程师与技术人员。; 使用场景及目标:①掌握基于多面体理论的电动汽车集群聚合建模方法,理解其作为“虚拟电池”参与系统调度的内在机理;②学习如何将海量异质个体的时空灵活性聚合为可操作的可行域,并应用于微电网或主动配电网的优化调度问题;③为开展车网互动(V2G)、分布式资源聚合、鲁棒调度、虚拟电厂等前沿课题的研究提供坚实的模型基础与可复用的代码参考。; 阅读建议:建议读者结合文
中
提供的Matlab代码,逐模块运行与调试,重点关注电动汽车个体可行域的构建、多面体聚合的内近似算法实现以及微电网调度模型
中
约束条件的耦合方式,鼓励通过修改参数、增删设备类型或扩展为多时段模型等方式进行二次开发,以深化对聚合机理与优化逻辑的理解。
QT5 calling DLL
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 QT5代表了Qt软件框架的第五个核心版本,其作为一个广受欢迎的开放源代码跨平台软件应用开发框架,能够支持包括Windows、Linux以及macOS在内的多种操作系统平台。在QT5环境下对DLL(动态链接库)进行调用是一项普遍存在的工作需求,特别是在需要借助已有的C++代码或达成特定功能实现的情况下。接下来将系统性地阐述在QT5
中
如何进行DLL的调用操作。 1. **DLL的构建过程**: 在Windows系统环境
中
,首要任务是开发一个DLL项目。DLL通常承载一些可供外部应用程序调用的导出函数或类,它们构成了应用程序间的接口。在Qt Creator软件
中
,创建一个全新的项目,选择“Qt Console Application”类型,然后在.pro项目文件
中
增加`QT += core`声明,以保证基础库的可用性。随后,需要声明导出函数,并利用`__declspec(dllexport)`关键字进行标记。例如: ```cpp #ifdef MYDLL_EXPORTS #define MYDLL_API __declspec(dllexport) #else #define MYDLL_API __declspec(dllimport) #endif extern "C" MYDLL_API void myFunction() { // 函数实现代码 } ``` 2. **DLL的构建**: 完成DLL源代码的编写之后,需要对项目的构建配置进行设置,以便生成DLL文件。在.pro项目文件里,必须确保正确设置了构建类型,比如`CONFIG += dll`。然后执行项目编译操作,从而...
2026年最新开封市公交线路及站点矢量数据.zip
数据格式:shp 数据坐标:GCJ02 数据更新时间:2026年9月 公交线路来源:8684网站 https://8684.com.cn/ 站点数据来源:高德API接口 数据打开方式:QGIS或Arcgis 站点数据字段:名称、序号、对应线路、几何信息 线路数据字段:名称、类型、起点、终点、开始时间、结束时间、起步价、全价、长度、公司、几何信息
Collaborative-Map-Permission-Handoff-Evidence-v1.0-原创源码与文档.zip
原创 JavaScript 离线工具,包含完整源码、README、MIT LICENSE、原创与授权声明、自动化测试、示例数据、真实运行截图及离线报告。解压后运行 npm test 验证,再用 node src/cli.js examples/sample.json 生成报告;不依赖外部服务。
C#
111,129
社区成员
642,533
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章