Check out the Web Forms Syntax Reference on MSDN.
For basics,
<% %> is used for pure code blocks. I generally only use this for if statements
<div class="authenticated">
<div class="unauthenticated">
- is used to add text into your markup; that is, it equates to
<div class='<%= IsLoggedIn ? "authenticated" : "unauthenticated" %>'>
<%# Expression %> is very similar to the above, but it is evaluated in a DataBinding scenario. One thing that this means is that you can use these expressions to set values of runat="server" controls, which you can't do with the <%= %> syntax. Typically this is used inside of a template for a databound control, but you can also use it in your page, and then call Page.DataBind() (or Control.DataBind()) to cause that code to evaluate.
The others mentioned in the linked article are less common, though certainly have their uses, too.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…