You can add the attributes of all intersecting lines to your polygon in the field mapping options of the spatial join.
psb excellent article on it.
Spatial Join’s hidden trick or how to transfer attribute values in a One to Many relationship | Esri...
you could of course script it, but I'd just to the spatial join, appending all the SHAPE_LENGTH s to a delimited field which would look like - 123.45, 45.56, 789.9...
you could then create a new field then do a field calculation, something selecting the largest value from yourfield.split(",")
edit - just read that you want the longest line WITHIN the polygon, I'd guess you'd have to clip all the lines to all the polygons, then split the lines again by the boundaries of the polygons (run a polygon to line I think for the split) and then do the join.