private void Server_AdminCredentialsRequired(object sender, AdminCredentialsRequiredEventArgs e) { try { var identity = new Opc.Ua.Client.Controls.UserNamePasswordDlg().ShowDialog(e.Credentials, "Provide PushServer Administrator Credentials"); if (identity != null) { e.Credentials = identity; e.CacheCredentials = true; } } catch (Exception exception) { ExceptionDlg.Show(this.Text, exception); } }
private IUserIdentity ElevatePermissions() { IUserIdentity oldUser = Session.Identity; if (AdminCredentials == null || !Object.ReferenceEquals(Session.Identity, AdminCredentials)) { IUserIdentity newCredentials = null; if (AdminCredentials == null) { var handle = AdminCredentialsRequired; if (handle == null) { throw new InvalidOperationException("The operation requires administrator credentials."); } var args = new AdminCredentialsRequiredEventArgs(); handle(this, args); newCredentials = args.Credentials; if (args.CacheCredentials) { AdminCredentials = args.Credentials; } } else { newCredentials = AdminCredentials; } try { Session.UpdateSession(newCredentials, PreferredLocales); } catch (Exception) { AdminCredentials = null; throw; } } return(oldUser); }