我用的是
CurrentIdentity.Name 得到的结果是WANGZW-SHWY\ASPNET 前面的wangzw-shwy是我的计算机名称,我的登录名是wangzhiwSystem.Environment.UserName 得到的结果是ASPNET上面是我试的两个方法,在项目中运行是可以获得我的登录用户名,但是一放到IIS上布置后就成了上述情况请各位高手指点迷津
CurrentIdentity.Name 得到的结果是WANGZW-SHWY\ASPNET 前面的wangzw-shwy是我的计算机名称,我的登录名是wangzhiwSystem.Environment.UserName 得到的结果是ASPNET上面是我试的两个方法,在项目中运行是可以获得我的登录用户名,但是一放到IIS上布置后就成了上述情况请各位高手指点迷津
解决方案 »
- sql server建立连接时出现与网络相关的或特定于实例的错误
- 未能加载文件或程序集“Brettle.Web.NeatUpload”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_IN
- 我的代码出错了,你能帮我看一下吗?
- ASP.NET 2.0中的TREEVIEW怎么没有了SelectExpands这个属性?
- 水晶报表WEB打印问题
- 【请大家为我解决一个上传组件Fileupload的问题!】
- 2003 登陆用户控件 登陆成功后 如何通知使用该控件的页面
- 为什么我的.net页面在linux下不能用呢
- 求帮助.......大数据导入问题
- 一个用ASP写得客户管理系统究竟要多少钱(采用B/S)
- 为什么我OnClientClick="checkForm()"来验证客户端的时候return false还是会提交??
- ORA-12154: TNS: 无法处理服务名
主机名 = Server.MachineName; IP地址 = Request.UserHostAddress; 系统时间 = DateTime.Now.ToString(); 服务端口 = Request.ServerVariables["SERVER_PORT"]; 操作系统 = Environment.OSVersion.ToString().Remove(0, 10); 环境版本 = Request.ServerVariables["SERVER_SOFTWARE"];
private void GetInfo()
{
string cpuInfo = "";//cpu序列号
ManagementClass cimobject = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
Response.Write ("cpu序列号:"+cpuInfo.ToString ());
} //获取硬盘ID
String HDid;
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
foreach(ManagementObject mo in moc1)
{
HDid = (string)mo.Properties["Model"].Value;
Response.Write ("硬盘序列号:"+HDid.ToString ());
}
//获取网卡硬件地址
9558821702001755616
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc2 = mc.GetInstances();
foreach(ManagementObject mo in moc2)
{
if((bool)mo["IPEnabled"] == true)
Response.Write("MAC address\t{0}"+mo["MacAddress"].ToString());
mo.Dispose();
}
}
我要的是,我把项目挂在服务器上,在IIS上布置好
然后从其他的机子可以访问
获取当前访问机子的登录名
string[] logon = wp.Identity.Name.Split('\\');
string UserDomain = logon[0];//网域
string UserName = logon[1].ToString().ToLower();//登陆名
Declare integer GetUserName in advapi32 string @lpBuffer, integer @nSize nSize = 250 lpBuffer = SPACE(nSize) If GetUserName (@lpBuffer, @nSize) > 0 lpBuffer = STRTRAN( allt(Subs(lpBuffer, 1, nSize)), CHR(0), [])
Return lpBuffer
Else
Return [] EndifEndfunc
protected void Page_Load ( object sender, EventArgs e ) { if ( Page.User.Identity.IsAuthenticated == false ) {
string userName = new WindowsPrincipal ( WindowsIdentity.GetCurrent () ).Identity.Name;
//System.Environment.UserName;
userName = userName.Split ( '\\' ) [1];
if ( !user.ExistsUser ( userName, "0" ) ) {
Response.Write ( "Access Deny" );
} else {
FormsAuthentication.RedirectFromLoginPage ( userName, true );
Response.Redirect ( "Default.aspx" );
}
} else {
Response.Redirect ( "Default.aspx" );
}
}
14楼朋友的建议很好,有时间我会去研究的,但是现在急于解答问题呀
17楼朋友的代码我试过了
在直接运行项目是可以取到域用户名的
可是一放到IIS上就又变成了ASPNET了
郁闷呀我加分去,朋友们继续想办法呀
IIS 有没有设置 windows 域服务器的摘要式身份认证?? 还有web.config 那里也要
至于24楼的朋友
web.config 里面我设置过了,但是你说的那个
“ IIS 有没有设置 windows 域服务器的摘要式身份认证??”
我好像不太清楚,能否说得详细一点,在哪设置
相关帖子:http://topic.csdn.net/u/20080702/21/fc3826ba-2296-41f6-8049-3d0fbe5710b8.html
用这个吧。。
你的这样的需求当让不能使用匿名了、
启用Windows身份验证 自然就能获取用户名、
不允许使用匿名访问
启用Windows身份验证
就OK了
可以取得域名加登录名了Page.User.Identity.Name
最后我用的是这个,挺好用的
再次谢谢各位了呀
结贴去了