DeviceManager/DeviceRepair.Api/Common/CFController.cs
2024-05-28 22:36:38 +08:00

56 lines
1.9 KiB
C#

using DeviceRepair.Models;
using DeviceRepair.Utils.Security;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web.Http;
namespace DeviceRepair.Api.Common
{
public class CFController : ApiController
{
public HeaderModel OperationInfo = null;
/// <summary>
/// 获取Header中的操作人信息
/// </summary>
[NonAction]
public void GetParams()
{
OperationInfo = new HeaderModel();
Guid guid = Guid.Empty;
try
{
var props = typeof(HeaderModel).GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in props)
{
IEnumerable<string> values;
if (Request.Headers.TryGetValues(prop.Name, out values))
{
if (values != null && values.Count() > 0)
{
string value = values.FirstOrDefault();
if (!string.IsNullOrWhiteSpace(value))
{
value = EncryptionHelper.UrlDecode(value);
if (prop.PropertyType == typeof(Guid?) && Guid.TryParse(value, out guid))
{
prop.SetValue(OperationInfo, guid, null);
}
else
{
prop.SetValue(OperationInfo, Convert.ChangeType(value, prop.PropertyType), null);
}
}
}
}
}
}
catch (System.Exception)
{
throw;
}
}
}
}