Ruby:获取当前在Windows上登录的用户

Wed*_*dTM 5 ruby windows single-sign-on

在C#中,我可以使用HttpContext获取Web应用程序的当前用户,但是,我无法弄清楚如何在Ruby中执行此操作.有没有办法做到这一点?

对于你所说的那些是不可能的,以下证明:

http://www.codeproject.com/KB/aspnet/How_to_NT_User_Name.aspx

Abo*_*uby 12

好吧,要获得当前的用户名,就是:

puts ENV['USERNAME']
Run Code Online (Sandbox Code Playgroud)

或者转到Win32API.

require 'dl/win32'

def get_user_name
  api = Win32API.new(
    'advapi32.dll',
    'GetUserName',
    'PP',
    'i'
  )

  buf = "\0" * 512
  len = [512].pack('L')
  api.call(buf,len)

  buf[0..(len.unpack('L')[0])]
end

puts get_user_name
Run Code Online (Sandbox Code Playgroud)

编辑:我是个白痴.这不是你要求的.哦,好吧,我花了很多时间从我的代码中挖掘出来,所以它也可能留在这里让其他人不知道:P

再次编辑:好的,事实证明我毕竟不是白痴.这就是你想要的.当我回去重新阅读你的问题时,HttpContext把我扔了,我认为这是来自HTTP auth的当前用户名.