When you use the non-generic version of the DeserializeObject() method you get a JObject. As the error shows, you cannot cast this JObject to a UserAttributes object. The reason is that type casting is allowed in specific cases, like casting between compatible primitive types (e.g. between int and double) or between classes which are related.
For example, if we have a base class and a derived class, class Animal and class Reptile : Animal, you can safely cast an object of type Reptile to Animal, or the other way around (if your object is indeed a Reptile, otherwise you'll get an error).
Therefore, the reason your sample code doesn't work is because the JObject you have and the UserAttributes you want to get aren't related in any way. The solution, as already pointed out by @StarterPack, is to use the generic version DeserializeObject<some_type>().
JsonConvert.DeserializeObject<UserAttributes>(...