In your version the entire form is contained within the topic, so you wouldn't be able to use C# code to auto-populate the values unless you added some code to parse through the topic after it was rendered to the page and make some string replaces. Provided you have the source, an alternative may be to create custom tokens (topics parse skin tokens) that you could use directly within the topic, eg.
Parser.cs -> BuildPageDynamicTokens()
Code:
m_DynamicTokens.Add("(!CONTACTNAME!)", CommonLogic.IIF(ThisCustomer.IsRegistered, ThisCustomer.FullName(), String.Empty));
m_DynamicTokens.Add("(!CONTACTEMAIL!)", CommonLogic.IIF(ThisCustomer.IsRegistered, ThisCustomer.EMail, String.Empty));
m_DynamicTokens.Add("(!CONTACTPHONE!)", CommonLogic.IIF(ThisCustomer.IsRegistered, ThisCustomer.Phone, String.Empty));
Then in the contact topic:
Code:
<tr>
<td valign="top" width="102" align="right">*Your Name:</td>
<td valign="middle" width="348" align="left"><input name="Name" size="27" id="MailName" value="(!CONTACTNAME!)" type="text"></td>
</tr>
<tr>
<td valign="top" width="102" align="right">*Your Phone:</td>
<td valign="middle" width="348" align="left"><input name="Phone" size="27" id="MailPhone" type="text" value="(!CONTACTPHONE!)"></td>
</tr>
<tr>
<td valign="top" width="102" align="right">*Your E-Mail:</td>
<td valign="middle" width="348" align="left"><input name="EMail" size="27" id="MailEmail" type="text" value="(!CONTACTEMAIL!)"></td>
</tr>
In versions 9+ the contact us page is an actual page where you could make your modifications to auto-populate the fields.