Webpart required permissions that user might not have. You need to ensure that users with insufficient permissions can also run web part to perform privileged operations. Which method should you use?
SPSecurity.AuthenticateMode
SPSecurity.RunWithElevatedPrivileges
SPSecurity.CatchAccessDeniedException
SPSecurity.SetApplicationCredentialKey