Yes it is possible to have add canonical tags as your example code shows.
If you want to have the same canonical url be the the same as what the user and navagation shows then try the code below:
<link rel="canonical" href="http://@Request.Url.Host@CommonLogic.GetThisPageName(true)
As for would it be detrimental to have the canonical tag is somewhat subjective. Since canonical is meant to be way try and state two pages are the same content wise to search engines. That way search engines don't ding you ranking for duplicate content. I do know Moz likes to suggest this tag for every page no matter what so that is why you see so many pages reporting in Moz.