2010-06-03 24 views
25

Tôi đang làm việc với một tiện ích bổ sung của Firefox (được viết bằng JavaScript) và cần phải xác định người dùng Windows hiện đã đăng nhập. Có cách nào để làm việc này không?Tải tên người dùng Windows trong tiện ích bổ sung Firefox cũ (không phải WebExtensions)

+0

Đây là một nguy cơ bảo mật và là lý do tại sao nó không được tiếp xúc trong javascript. Bạn đang cố làm gì vậy? –

+0

Tôi đang xây dựng một tiện ích mở rộng nội bộ cho một công ty và cần xem người dùng nào yêu cầu tài liệu nào. – cwhiii

+0

@duskwuff, Tại sao lại gặp phải một câu hỏi 7 năm cho bản chỉnh sửa đó? Tất cả những gì bạn đã làm là thay thế một thẻ trong tiêu đề bằng một thẻ khác trong tiêu đề. Các thẻ đã làm cho nó rõ ràng đây là về một add-on của Firefox. Không cần phải chỉnh sửa điều này để thực hiện thay đổi đó. Trong thực tế, nếu bạn muốn nhận được pedantic, chúng tôi không phải có thẻ không tách rời trong tiêu đề, do đó, "Nhận tên người dùng Windows" sẽ thích hợp hơn. Bạn đang đề xuất chúng tôi luôn đặt thẻ trong tất cả các tiêu đề? – Makyen

Trả lời

5

Bạn có thể sử dụng giao diện nsIEnvironment để nhận USERNAME biến môi trường.

+2

là có một tương đương IE cho điều này mà không cung cấp cho các rắc rối ActiveX nào (người dùng được cho biết rằng có một nguy cơ bảo mật vv) khi đi qua quá trình nhận được tên người dùng? – pythonian29033

-2
<html> 
<head> 
    <script language="javascript"> 
     function GetUserName() 
     { 
      var wshell = new ActiveXObject("WScript.Shell"); 
      alert(wshell.ExpandEnvironmentStrings("%USERNAME%")); 
     } 
    </script> 
</head> 
<body OnLoad="GetUserName();"> 
</body> 
</html> 
+8

ActiveX không hoạt động chính xác trong Firefox. – sdwilsh

9

này hiện các trick trên Windows:

function getUser() { 
    return Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME'); 
}  
+1

Giải pháp này cho tôi lỗi này'TypeError: Components.classes là undefined', Bạn nghĩ giải pháp cho lỗi này là gì? – Scar

+0

Điều này không hoạt động trong Firefox như câu hỏi ban đầu đang được yêu cầu. – Monkpit

+0

@Scar: Theo như tôi đã hiểu [bài đăng Stackoverflow này] (http://stackoverflow.com/questions/21378058/why-components-classes-is-undefined), bạn không thể sử dụng Components.classes trong các trang web thông thường. Nó có nghĩa là để sử dụng trong các phần mở rộng/addons của Firefox. – Stephanie

1

Firefox đã có Integrated Authentication tích hợp (nhiều người không biết rằng).
Xem: https://developer.mozilla.org/en-US/docs/Integrated_Authentication

Đây là một addon Firefox được ưa thích đó giúp giảm bớt các cấu hình: https://addons.mozilla.org/nl/firefox/addon/integrated-auth-for-firefox/

Dưới đây là một số giải thích thêm:
http://justgeeks.blogspot.nl/2011/01/firefox-supports-integrated-windows.html

Chúc may mắn!

3

mã sau đây làm việc cho tôi thay vì sự kiện onload với các cuộc gọi chức năng:

var objUserInfo = new ActiveXObject("WScript.network"); 
document.write(objUserInfo.ComputerName+"<br>"); 
document.write(objUserInfo.UserDomain+"<br>"); 
document.write(objUserInfo.UserName+"<br>"); 
var uname = objUserInfo.UserName; 
alert(uname); 
+7

Người hỏi sử dụng * firefox *. Câu trả lời này sử dụng M $ ActiveX! Nó sẽ không hoạt động (và tôi không thể tin rằng tôi thực sự thử nghiệm nó, nhưng tôi đã làm). Trên thực tế đã có một Plugin ActiveX cho firefox (một số lứa tuổi trước đây, khoảng thời đại của FF2), nhưng ActiveX bây giờ là trên danh sách chặn mozilla. ([nguồn] (http://kb.mozillazine.org/ActiveX)). – GitaarLAB

+0

Đã kiểm tra nhưng mã này chỉ hoạt động trong Internet Explorer và sẽ không hoạt động trong Firefox. Các tùy chọn tốt nhất là tạo ra một điều khiển ẩn/textbox mà giữ giá trị được đưa ra từ mã phía sau (phía máy chủ), sử dụng javascript để có được giá trị bạn cần. Xem xét xu hướng hiện tại, không phải ai cũng sử dụng IE để thực hiện công việc của họ nữa. – mutanic

+0

10 đại diện cho sự cố hiển thị cho chúng tôi có các tùy chọn bổ sung – pythonian29033

Các vấn đề liên quan