Suppose the lists are N and M in size and that the likely scenario does not match. Andrew's solution is O (NM) in time and O (1) in extra memory. Adam's solution is O (N + M) in time and memory, but can be written more clearly as John's solution.
Another solution, which basically coincides with Adam and John, would be to combine the two lists:
var joined = from user in userRoles join auth in authRoles on user equals auth select user; return joined.Any();
It's a little harder than necessary, but it reads well. :-)
source share