public static void ShowDialog(IocManager iocManager, IFormIOSchemeManager formIOSchemeManager, ILoginManager loginManager) { DialogHybirdForm <FormIOControl> dialog = new DialogHybirdForm <FormIOControl>(iocManager, typeof(ZtgeoGisHybridMoudle).Assembly, new string[] { "WebViews", "FormIO", "FormIoWebView.html" }); dialog.Size = new Size(550, 520); dialog.MaximizeBox = false; dialog.MinimizeBox = false; dialog.StartPosition = FormStartPosition.CenterScreen; dialog.ShowIcon = true; dialog.Icon = new Icon(AssemblyResource.GetResourceStream(typeof(ZtgeoGISDesktopMoudle).Assembly, "ZtgeoGISDesktop.Icons.login.ico")); string component = formIOSchemeManager.GetFormIOSchemeById(2); ((FormIOControl)dialog.hybridControl).SetFormIOComponentAndData(component, "{}"); ((FormIOControl)dialog.hybridControl).OnSave = (control, submissionData) => { try { dynamic subdata = JsonConvert.DeserializeObject <dynamic>(submissionData); var authenticateResultModel = loginManager.Login(new Ztgeo.Gis.Runtime.Authorization.AuthenticateModel { UserNameOrEmailAddress = subdata.data.UserName, Password = subdata.data.Password }, (bool)subdata.data.IsServerless); if (authenticateResultModel != null && authenticateResultModel.ShouldResetPassword) { MessageBox.Show("密码需要重置,请联系管理员"); return; } if (authenticateResultModel != null) { dialog.DialogResult = DialogResult.OK; dialog.Close(); } } catch (Exception ex) { EventBus.Default.Trigger(new NonUIExceptionEventData { UnhandledExceptionEventArgs = new UnhandledExceptionEventArgs(ex, false) }); } }; if (dialog.ShowDialog() == DialogResult.Cancel) { System.Environment.Exit(0); } }