Since the actual name of the role ("Administrators", "General") is a string, you are on the right track, reducing the number of occurances for these string literals in the code. Always think about what will happen if you need to rename a role?
Your approach where you have methods hiding the actual "string name" of the role is definitely a way to go. Instead of having these methods in each page, you can place them in a static utility class in App_Code. Or in your Master page (if you're using it). That way, you need only to define this methods (should really be properties) once.
Another option you have to get past this string literal dependency, is to go for enums.If you to create a RoleManager class in App_Code. This RoleManager exposes a Role enum, and this Role enum can be used in the static method IsInRole. So your code would be:
panel1.Visible = RoleManager.IsInRole(Role.Administrator)
Good luck!
If this post was useful to you, please mark it as answer. Thank you!