assigning users to roles fails randomly
===

I encounter the following problem when creating users in my application:

Very rarely, the newly created users are not assigned to the role they should be assigned to.

The relevant code is:
    
    if (!Roles.IsUserInRole(aRoleName))
        Roles.AddUserToRole(user.UserName, aRoleName);

After some debugging, this is what I know:
On normal user creation, the stored procedure aspnet_UsersInRoles_GetRolesForUser is not executed.

On abnormal user creation, it's a bit more complicated:

A user is created and assigned to correct role; however, during this user's creation, the aspnet_UsersInRoles_GetRolesForUser stored procedure is executed. Then a short time (~1 second) later, another user is created. During this later user creation, the stored procedure is not run, but this user is NOT assigned to the role.

This happens on a very small percentage of user registrations (about 0.1%).

I'm using standard SqlRoleProvider.

I suspect some caching to be at fault, but I could not find a good explanation online as to what caching mechanism is used here, and there is no explicit caching definition in my application.

Any ideas will be appreciated.

Thanks,
Micky