using System; using System.Net.Http; using System.Web.Http; using WcfControlMonitorLib; namespace WcfControlMonitorWebLib.Controllers { /// /// 会话资源 /// [RoutePrefix("api/sessions")] public class SessionsController : ControllerBase { /// /// 登录 /// /// 登录成功后返回令牌,即对应的会话 ID [HttpPost] [Anonymous] public IHttpActionResult Login(HttpRequestMessage request) { dynamic data = request.Data(); string account = data.account; string password = data.password; var dr = CStaticClass.dbo.ExceSQL($"SELECT F_USERID FROM T_BASE_USERS WHERE F_USERID='{account}' AND F_PASSWORD='{password}'").Tables[0].DefaultView.Table.Rows; if (dr.Count > 0) { // 创建会话 var token = Guid.NewGuid().ToString("N"); WebSession.Store.Add(token, new WebSession { Value = account, Timestamp = DateTime.Now }); return Ok(new { token }); } else { return Unauthorized(); } } /// /// 登出 /// [HttpDelete] [Anonymous] public IHttpActionResult Logout(HttpRequestMessage request) { // 删除会话 var token = request.Token(); if (WebSession.Store.ContainsKey(token)) { WebSession.Store.Remove(token); } return Ok(); } } }