public async Task<Response> ChangeMachineKey(string account, MachineKey machineKey) { var user = GetUser(account); if (user == null) { return new Response { ErrorMessage = UserNotExists }; } if (machineKey?.IsValid() != true) { return new Response { ErrorMessage = "计算机密钥信息必须要有符合要求(验证密钥长128,加密密钥长48)!" }; } try { var webConfigPath = HttpContext.Current.Server.MapPath("~/web.config"); await Task.Run(() => { var xdoc = XDocument.Load(webConfigPath); var machineKeyElement = xdoc.XPathSelectElement("//system.web/machineKey"); machineKeyElement.Attribute("validationKey").SetValue(machineKey.ValidationKey); machineKeyElement.Attribute("decryptionKey").SetValue(machineKey.DecryptionKey); xdoc.Save(webConfigPath, SaveOptions.None); }); } catch (Exception exception) { return new Response { ErrorMessage = exception.Message }; } return new Response(); }
/// <summary> /// 修改机器密钥。 /// </summary> /// <param name="account">用户账号</param> /// <param name="machineKey">计算机密钥</param> /// <returns>修改后结果提示</returns> public Response ChangeMachineKey(string account, MachineKey machineKey) { var url = string.Format(ChangeMachineKeyUrl, account); this.Cache?.Remove(TokenCacheKey); return this.Post<Response>(url, machineKey); }