恒石成品库WCS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.6 KiB

using System;
using System.Net.Http;
using System.Web.Http;
using WcfControlMonitorLib;
namespace WcfControlMonitorWebLib.Controllers
{
/// <summary>
/// 会话资源
/// </summary>
[RoutePrefix("api/sessions")]
public class SessionsController : ControllerBase
{
/// <summary>
/// 登录
/// </summary>
/// <returns>登录成功后返回令牌,即对应的会话 ID</returns>
[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();
}
}
/// <summary>
/// 登出
/// </summary>
[HttpDelete]
[Anonymous]
public IHttpActionResult Logout(HttpRequestMessage request)
{
// 删除会话
var token = request.Token();
if (WebSession.Store.ContainsKey(token))
{
WebSession.Store.Remove(token);
}
return Ok();
}
}
}