1

我需要获取当前登录的 windows 用户的用户名。能轻松完成吗?

4

4 回答 4

3

可以通过以下方式访问运行脚本的帐户的用户名:

puts ENV['USERNAME']

请注意,如果您将其作为系统服务运行,则用户名可能会返回为“SYSTEM”

如果这还不足以满足您的需求,这里列出了另一种方法:https ://stackoverflow.com/a/3544741/648695

于 2013-06-13T23:30:52.293 回答
2

您可以使用 Rubyetc模块

require 'etc'
Etc.getlogin

该文档可在此处获得:http ://ruby-doc.org/stdlib-2.0.0/libdoc/etc/rdoc/Etc.html#method-c-getlogin

返回当前登录用户的短用户名。

于 2017-07-13T17:03:14.970 回答
0

据我所知,除非您使用需要微软框架网站的活动目录,否则我认为您不会在 Rails 中找到方法。

这里有一些讨论点可能会有所帮助:你能在 PHP 中获得一个 Windows (AD) 用户名​​吗?

于 2013-06-13T14:51:12.737 回答
0

同样的问题:有没有办法使用 ruby​​ on rails 读取客户端的 Windows 登录名

无论如何,只需在下面复制我自己的答案......


这对我有用,但有一些限制:

如果您不关心这些问题,请继续:

  1. 在您的 rails 应用程序中,将 Rekado 的 gem 添加到您的 Gemfile:gem 'ntlm-sso', '=0.0.1'

  2. 创建一个初始化器config/initializers/ntlm-sso.rb

    require 'rack'
    require 'rack/auth/ntlm-sso'
    
    class NTLMAuthentication
      def initialize(app)
        @app = app
      end
    
      def call(env)
        auth = Rack::Auth::NTLMSSO.new(@app)
        return auth.call(env)
      end
    end
    
  3. 在您的application.rb文件中,添加以下行:config.middleware.use "NTLMAuthentication"

  4. 调用request.env["REMOTE_USER"]您的视图或控制器以获取当前用户名。

PS:让我知道您是否找到使其在 Chrome 上运行或验证用户凭据的方法。

于 2015-06-15T22:12:33.757 回答