I did an answer in a support ticket that should help; I have pasted it below (p.s. MAC addresses can be changed too on some hardware)
"I really need to know how to assume the user based on the mac Address."
I can only suggest Assuming by ip address and then have a System Policy checking the MAC address against the user to allow access. So you would have your authentication done via the System Policies, and have each server / service check the Default Rights as "Must also be granted".
An example policy in could look like this:
1. Create the User Assumptions based off their ip addresses.
2. Modify the System Policies so to only accept the correct MAC Addresses associated to the user (As shown in image attached):
System Policies:
Everyone, User may be assumed
Advanced tab:
Filter 1
This criterion is met if MAC Address equals 00-11-2F-DC-53-4E
This criterion is met if User: Username equals Jamesc
Filter 2
This criterion is met if MAC Address equals 00-11-2F-DC-53-4E
This criterion is met if User: Username equals Pedro
Filter 3
This criterion is met if MAC Address equals 00-11-2F-DC-53-4E
This criterion is met if User: Username equals Terry
3. Set the other services / servers you use in WinGate to have their Default Rights (System Policies) set to "Must also be granted". In the email that will follow you will see an example image of the WWW Proxy Service with a "white list" of allowed sites, and using the "Must also be granted" Default Rights.
Tips:
1. Don't forget to make a MAC policy for the actual WinGate server as well.
2. Within the Advanced tab of a policy separate Filters are OR'd and multiple Criterions within Filters are AND'd
3. The Policy with the most access will always override the policy with the least access. So for example if we added a second Everyone group to the System Policies with no restrictions, then it would override those MAC addresses/User policies we setup in the first Everyone group.
4. There are quite a few ways to authenticate a user in WinGate depending on what user database is being used:
WinGate User Database.
WWW Proxy Java Authentication - Secure method - Needs Java (
www.java.com)
WGIC Authentication - Secure method - Client install.
QbikAuth Authentication - Secure method - Client install.
GateKeeper Authentication - Secure method - Client install.
Basic Authentication - Insecure method.
Assumed by IP Address - Insecure method.
Assumed by Computer name - Insecure method and WinGate must be DHCP Server.
Unauthenticated Access - Can be set for different criterions.
Local Windows User Database
WWW Proxy NTLM Authentication - Secure Method - Application must be NTLM compatible.
WGIC NTLM Authentication - Secure method - Client install.
QbikAuth NTLM Authentication - Secure method - Client install.
GateKeeper NTLM Authentication - Secure method - Client install.
Basic Authentication - Insecure method.
Assumed by IP Address - Insecure method.
Assumed by Computer name - Insecure method and WinGate must be DHCP Server.
Unauthenticated Access - Can be set for different criterions.
Domain User Database.
WWW Proxy NTLM Authentication - Secure Method - Application must be NTLM compatible.
WGIC NTLM Authentication - Secure method - Client install.
QbikAuth NTLM Authentication - Secure method - Client install.
GateKeeper NTLM Authentication - Secure method - Client install.
Basic Authentication - Insecure method.
Assumed by IP Address - Insecure method.
Assumed by Computer name - Insecure method and WinGate must be DHCP Server.
Unauthenticated Access - Can be set for different criterions.
*Secure: Then the authentication level of the policy needs to be set to "User must be authenticated"
*Insecure: Then the authentication level of the policy needs to be set to "User may be assumed"
*Unauthenticated: Then the authentication level of the policy needs to be set to "User may be unknown"
5. In my suggestion above I said to make the WWW Proxy Service to interact with the Default Rights with the "Must also be granted" option; here are some concepts of how to use this option:
*"Must also be granted": If the e.g. WWW Proxy Server policy allows access to this service, then it must also be checked in the System Polices before it is allowed. (So in my suggestion, the WWW Proxy looks after the access for web pages and the System Policies makes sure the user has the correct MAC address).
*"May be used instead": If the e.g. WWW Proxy Server policy denies the request, then check if the System Policies allow it; if it does, allow the user to access.
*"Are ignored": Do not check the System Policies to check if this user is allowed/denied to access to the WWW Proxy Server.