They all do. Just give your card number when you check in, or call the hotel/chain and have them enter it into your record, if the site didn't have a place to enter it when you booked. Expedia, etc., are like any other travel agent in this regard.
The concern in this regard is with "opaque" sites like Priceline, where you don't know what you'll get until you get it and pay less (perhaps a lot less) than the lowest published rate. There, you forfeit your right to get points/miles/etc., though there are many reports (search or scan the hotel forums) of people who got them nonetheless. That does not apply to the sites you mentioned, since the rates they offer are public - and may be no better than you could get from the hotel, or the chain, itself.