以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自定义用户管理中UserName变量与系统变量冲突  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21102)

--  作者:xiangyushi
--  发布时间:2012/7/1 17:59:00
--  自定义用户管理中UserName变量与系统变量冲突

自定义用户管理中使用了变量名UserName,但实际上此名已经作为系统信息变量使用:

 

SysInfo类型通过其共享属性,提供一些常用的系统信息。

属性名

说明

UserName

登陆操作系统的用户名


这样一来,“登陆操作系统的用户名”信息被覆盖了,给实际应用带来麻烦,因为你无法再使用“登陆操作系统的用户名”信息了!!

 

解决方法很简单:自定义用户管理中使用不使用“UserName”作为变量名即可。可以使用“SoftUserName”等名称。

[此贴子已经被作者于2012-7-1 18:02:25编辑过]

--  作者:jianjingmaoyi
--  发布时间:2012/7/1 18:44:00
--  
系统的自带的变量为User.Name


  自定义的可以任意作法,详细请见帮助的自定义用户管理,帮助的说明是_UserName.

--  作者:xiangyushi
--  发布时间:2012/7/1 19:53:00
--  
以下是引用jianjingmaoyi在2012-7-1 18:44:00的发言:
系统的自带的变量为User.Name


  自定义的可以任意作法,详细请见帮助的自定义用户管理,帮助的说明是_UserName.

我是经过了实践才发言的,我在"CaseStudy\\自定义用户管理"的文件中打开登录窗口,在“确定”按钮中增加了登录日志内容,代码如下:

 

Dim dr1 As DataRow

    dr1 = DataTables("表C").AddNew()

    dr1("登录时间") = Now()

    dr1("登录用户名") = _UserName .

    dr1("登录电脑名") = ComputerName

    dr1("登录电脑操作系统用户名") = UserName

 

结果是("登录用户名")和 ("登录电脑操作系统用户名") 均为“登录用户名(如贺辉)”,

后来将文件中所有地方的"UserName"改为“UserName1”,结果就跟我想要的一致了,如("登录电脑操作系统用户名") 为“Administrator”!!

 

在帮助文件中说:

“用户登录”窗口中"确定"按钮的代码为:

Dim UserName As String = e.Form.Controls("UserName").Value
Dim
cmd As New SQLCommand
....

    _UserName = UserName
注意上面带下划线的部分,这些代码已经把代表("登录电脑操作系统用户名") 的系统变量UserName重新赋值了!!!

 

 

jianjingmaoyi所说的User.Name 是正常的 foxtable自带的用户管理系统中的变量,并非此处所说的“自定义用户管理”文件中可以使用的。如果此处使用User.Name ,则会出现无论何人登录,均是一个用户名,即默认用户名,在示例文件就是“贺辉”了。

[此贴子已经被作者于2012-7-1 19:57:40编辑过]

--  作者:Fotable
--  发布时间:2012/8/10 22:24:00
--  
高手 ,读的很细