You can apply WebPart Personalization per Roles using User.IsInRole() method... see below
public void Page_Load()
{
if( !Context.User.IsInRole("administrator") )
WebPartManager.Current.WebParts[0].AllowClose=false;
}
Or this below
if (User.IsInRole("Administrators")) {
WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode();
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode();
}
else if (User.IsInRole("NormalUsers")) {
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode();
}
else {
Response.Write("Invalid user");
}
More information then check this
http://support.microsoft.com/kb/306590
Or if you wanted to show/hide a certain WebPart on the Page per User Level then you can refer to this link below
http://normen.mine.nu/MyBlog/viewpost.aspx?PostID=90