I figured this out. Joe had a nice method in the mojoRoleProvider that I copied, modified a bit and used in my StoreHelper.
The method is below for anyone who needs it.
public static void RefreshRoleCookie()
{
string[] currentUserRoles = new string[0];
String hostName = WebUtils.GetHostName();
SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();
if (siteSettings != null)
{
string roleCookieName = SiteUtils.GetRoleCookieName(siteSettings);
currentUserRoles = SiteUser.GetRoles(siteSettings, HttpContext.Current.User.Identity.Name);
string roleStr = "";
foreach (string role in currentUserRoles)
{
roleStr += role;
roleStr += ";";
}
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, // version
HttpContext.Current.User.Identity.Name, // user name
DateTime.Now, // issue time
DateTime.Now.AddHours(1), // expires every hour
false, // don't persist cookie
roleStr // roles
);
string cookieStr = FormsAuthentication.Encrypt(ticket);
HttpCookie roleCookie = new HttpCookie(roleCookieName, cookieStr);
roleCookie.Expires = DateTime.Now.AddMinutes(20);
roleCookie.HttpOnly = true;
roleCookie.Path = "/";
HttpContext.Current.Response.Cookies.Add(roleCookie);
}