• WMS系统后端开发-用户权限


    Account API

    1. using System;
    2. using System.Collections.Generic;
    3. using System.IdentityModel.Tokens.Jwt;
    4. using System.Linq;
    5. using System.Net;
    6. using System.Net.Http;
    7. using System.Security.Claims;
    8. using System.Web.Http;
    9. using WMS_WebAPI.Models;
    10. using WMS_WebAPI.Models.Context;
    11. namespace WMS_WebAPI.Controllers
    12. {
    13. [Authorize]
    14. public class AccountController : ApiController
    15. {
    16. WMS_Entities _context;
    17. AccountController()
    18. {
    19. _context= new WMS_Entities();
    20. }
    21. /// <summary>
    22. /// user name and password filed data required
    23. /// </summary>
    24. /// <param name="user">Username,Password required</param>
    25. /// <returns></returns>
    26. [HttpPost]
    27. [Route("api/Login")]
    28. [AllowAnonymous]
    29. public IHttpActionResult Login([FromBody] LoginModel user)
    30. {
    31. if (!ModelState.IsValid)
    32. {
    33. return NotFound();
    34. }
    35. var model = _context.Accountuser_Login(user.Username, user.Password).ToList();
    36. //FirstOrDefault();
    37. if (model != null)
    38. {
    39. if (model[0].UserID > 0)
    40. {
    41. string token = createToken(user.Username);
    42. ApplicationUser appuser = new ApplicationUser();
    43. appuser.UserID = Convert.ToInt32(model[0].UserID);
    44. appuser.CompanyID = Convert.ToInt32(model[0].CompanyID);
    45. appuser.Token = token;
    46. //appuser.sploginlist = model;
    47. var users = _context.Users.FirstOrDefault(s => s.UserID == appuser.UserID);
    48. appuser.RoleID = users.RoleID;
    49. var yearList = _context.Finacialyear_Select().ToList();
    50. var currentUser = new { user = appuser, warehouseList = model,finantialYears= yearList };
    51. return Ok(currentUser);
    52. }
    53. return Ok(false);
    54. }
    55. else
    56. {
    57. return NotFound();
    58. }
    59. }
    60. /// <summary>
    61. /// Get GetfinantialYears Info
    62. /// </summary>
    63. /// <returns></returns>
    64. [HttpPost]
    65. [Route("api/finantialYears")]
    66. public IHttpActionResult GetfinantialYears()
    67. {
    68. var data = _context.Finacialyear_Select().ToList();
    69. if (data == null)
    70. {
    71. return NotFound();
    72. }
    73. return Ok(data);
    74. }
    75. private string createToken(string username)
    76. {
    77. //Set issued at date
    78. DateTime issuedAt = DateTime.UtcNow;
    79. //set the time when it expires
    80. DateTime expires = DateTime.UtcNow.AddDays(7);
    81. var tokenHandler = new JwtSecurityTokenHandler();
    82. //create a identity and add claims to the user which we want to log in
    83. System.Security.Claims.ClaimsIdentity claimsIdentity = new ClaimsIdentity(new[]
    84. {
    85. new Claim(ClaimTypes.Name, username)
    86. });
    87. const string sec = "401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b3727429090fb337591abd3e44453b954555b7a0812e1081c39b740293f765eae731f5a65ed1";
    88. var now = DateTime.UtcNow;
    89. var securityKey = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(System.Text.Encoding.Default.GetBytes(sec));
    90. var signingCredentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(securityKey, Microsoft.IdentityModel.Tokens.SecurityAlgorithms.HmacSha256Signature);
    91. //create the jwt
    92. var token =
    93. (JwtSecurityToken)
    94. tokenHandler.CreateJwtSecurityToken(issuer: "http://localhost:50191", audience: "http://localhost:50191",
    95. subject: claimsIdentity, notBefore: issuedAt, expires: expires, signingCredentials: signingCredentials);
    96. var tokenString = tokenHandler.WriteToken(token);
    97. return tokenString;
    98. }
    99. }
    100. }

     Users API

    1. using System;
    2. using System.Data;
    3. using System.Data.SqlClient;
    4. using System.Linq;
    5. using System.Web.Http;
    6. using WMS_WebAPI.Models;
    7. using WMS_WebAPI.Models.Context;
    8. namespace WMS_WebAPI.Controllers
    9. {
    10. public class UsersController : ApiController
    11. {
    12. WMS_Entities _context = new WMS_Entities();
    13. CommanListToDataTableConverter ConvertDataTable = new CommanListToDataTableConverter();
    14. string connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
    15. [HttpGet]
    16. [Route("api/Users/Users_Select")]
    17. public IHttpActionResult Users_Select()
    18. {
    19. try
    20. {
    21. var data = _context.Users_Select().ToList();
    22. if (data == null)
    23. {
    24. return NotFound();
    25. }
    26. return Ok(data);
    27. }
    28. catch (System.Exception)
    29. {
    30. return BadRequest();
    31. }
    32. }
    33. [HttpPost]
    34. [Route("api/Users/Users_Insert")]
    35. public IHttpActionResult Users_Insert(cls_Users obj)
    36. {
    37. DataTable dtLcls_TD_Users = new DataTable();
    38. dtLcls_TD_Users = ConvertDataTable.ConvertToDataTable(obj.Lcls_TD_Users);
    39. DataSet ds = new DataSet();
    40. try
    41. {
    42. using (SqlConnection connection = new SqlConnection(connectionstring))
    43. {
    44. using (SqlCommand command = new SqlCommand("Users_Insert", connection))
    45. {
    46. command.CommandType = System.Data.CommandType.StoredProcedure;
    47. SqlParameter[] param = new SqlParameter[9];
    48. param[0] = new SqlParameter("@UserID", Convert.ToInt32(obj.UserID));
    49. param[1] = new SqlParameter("@UserName", Convert.ToString(obj.UserName));
    50. param[2] = new SqlParameter("@UserDetail", Convert.ToString(obj.UserDetail));
    51. param[3] = new SqlParameter("@Password", Convert.ToString(obj.Password));
    52. param[4] = new SqlParameter("@RoleID", Convert.ToInt32(obj.RoleID));
    53. param[5] = new SqlParameter("@UserTypeID", Convert.ToInt32(obj.UserTypeID));
    54. param[6] = new SqlParameter("@CreatedBy", Convert.ToInt32(obj.CreatedBy));
    55. param[7] = new SqlParameter("@CreatedBy", Convert.ToInt32(obj.CreatedBy));
    56. param[8] = new SqlParameter("@UserCompany", dtLcls_TD_Users);
    57. param[8].SqlDbType = SqlDbType.Structured;
    58. command.Parameters.AddRange(param);
    59. connection.Open();
    60. using (SqlDataAdapter da = new SqlDataAdapter(command))
    61. {
    62. da.Fill(ds);
    63. }
    64. connection.Close();
    65. }
    66. return Ok(ds);
    67. }
    68. }
    69. catch (System.Exception ex)
    70. {
    71. return BadRequest(ex.Message);
    72. }
    73. }
    74. }
    75. }

  • 相关阅读:
    4.2 K8S超级完整安装配置
    网络编程:网络超时检测(select poll setsockopt alarm)
    lwip_网卡
    树与二叉树堆:树
    MATLAB坐标区应用
    Docker Volume(存储卷)
    R语言绘制PCA双标图、碎石图、变量载荷图和变量贡献图
    LeetCode - 哈希表专题
    解决ElementUI表格el-table-column添加fixed底部被遮挡的方法汇总
    机器学习笔记 - 简单了解模式识别
  • 原文地址:https://blog.csdn.net/xdpcxq/article/details/128074545