Bladeren bron

资源服务添加完成

徐明 5 jaren geleden
bovenliggende
commit
6f502483c3

+ 44 - 0
CasinosManager.Api/CasinosManager.Api/Controllers/IdentityController.cs

@@ -0,0 +1,44 @@
+using CasinosManager.Api.Dto;
+using IdentityModel;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace CasinosManager.Api.Controllers
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    [Authorize]
+    public class IdentityController : ControllerBase
+    {
+        [HttpGet()]
+        public ActionResult<CurrentUserInfo> Get()
+        {
+            CurrentUserInfo userInfo = new CurrentUserInfo();
+            foreach (var claim in HttpContext.User.Claims)
+            {
+                if (claim.Type == "UserId")
+                {
+                    userInfo.UserId = claim.Value;
+                }
+                else if (claim.Type == "UserName")
+                {
+                    userInfo.UserName = claim.Value;
+                }
+                else if (claim.Type == JwtClaimTypes.Name)
+                {
+                    userInfo.Name = claim.Value;
+                }
+                else if (claim.Type == JwtClaimTypes.Email)
+                {
+                    userInfo.Email = claim.Value;
+                }
+                else if (claim.Type == JwtClaimTypes.Role)
+                {
+                    userInfo.Role = claim.Value;
+                }
+            }
+
+            return userInfo;
+        }
+    }
+}

+ 7 - 4
CasinosManager.Api/CasinosManager.Api/Controllers/StudentController.cs

@@ -1,8 +1,8 @@
 using CasinosManager.Api.Domain;
+using CasinosManager.Api.Dto;
 using CasinosManager.Api.Service;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using System.Collections.Generic;
 using System.Linq;
 
 namespace CasinosManager.Api.Controllers
@@ -14,14 +14,17 @@ namespace CasinosManager.Api.Controllers
     {
         // GET api/values
         [HttpGet]
-        public ActionResult<List<Student>> Get(int page, int pageSize)
+        public ActionResult<PageListOutput<Student>> Get(int page, int pageSize)
         {
+            PageListOutput<Student> output = new PageListOutput<Student>();
+
             MockDataService service = new MockDataService();
 
             int skip = (page - 1) * pageSize;
-            var data = service.GetStudents().Skip(skip).Take(pageSize).ToList();
+            output.Total = service.GetStudents().Count();
+            output.Data = service.GetStudents().Skip(skip).Take(pageSize).ToList();
 
-            return data;
+            return output;
         }
     }
 }

+ 14 - 15
CasinosManager.Api/CasinosManager.Api/Controllers/ValuesController.cs

@@ -1,9 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
+using CasinosManager.Api.Domain;
+using CasinosManager.Api.Dto;
+using CasinosManager.Api.Service;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
+using System.Linq;
 
 namespace CasinosManager.Api.Controllers
 {
@@ -11,19 +11,18 @@ namespace CasinosManager.Api.Controllers
     [ApiController]
     public class ValuesController : ControllerBase
     {
-        // GET api/values
-        [HttpGet]
-        public ActionResult<IEnumerable<string>> Get()
+        [HttpGet()]
+        public ActionResult<PageListOutput<Student>> Get(int page, int pageSize)
         {
-            return new string[] { "value1", "value2" };
-        }
+            PageListOutput<Student> output = new PageListOutput<Student>();
 
-        // GET api/values/5
-        [HttpGet("{id}")]
-        [Authorize]
-        public ActionResult<string> Get(int id)
-        {
-            return "value";
+            MockDataService service = new MockDataService();
+
+            int skip = (page - 1) * pageSize;
+            output.Total = service.GetStudents().Count();
+            output.Data = service.GetStudents().Skip(skip).Take(pageSize).ToList();
+
+            return output;
         }
 
         // POST api/values

+ 11 - 0
CasinosManager.Api/CasinosManager.Api/Dto/CurrentUserInfo.cs

@@ -0,0 +1,11 @@
+namespace CasinosManager.Api.Dto
+{
+    public class CurrentUserInfo
+    {
+        public string UserId { get; set; }
+        public string UserName { get; set; }
+        public string Name { get; set; }
+        public string Email { get; set; }
+        public string Role { get; set; }
+    }
+}

+ 10 - 0
CasinosManager.Api/CasinosManager.Api/Dto/PageListOutput.cs

@@ -0,0 +1,10 @@
+using System.Collections.Generic;
+
+namespace CasinosManager.Api.Dto
+{
+    public class PageListOutput<T>
+    {
+        public int Total { get; set; }
+        public List<T> Data { get; set; }
+    }
+}

+ 12 - 0
CasinosManager.Api/CasinosManager.Api/Startup.cs

@@ -29,6 +29,17 @@ namespace CasinosManager.Api
 
                     options.ApiName = "CasinosApi";
                 });
+
+            services.AddCors(options =>
+            {
+                options.AddPolicy("angular", policy =>
+                {
+                    policy.WithOrigins("http://localhost:4200")
+                            .AllowAnyHeader()
+                            .AllowAnyMethod()
+                            .AllowCredentials();
+                });
+            });
         }
 
         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
@@ -39,6 +50,7 @@ namespace CasinosManager.Api
                 app.UseDeveloperExceptionPage();
             }
             app.UseAuthentication();
+            app.UseCors("angular");
             app.UseMvc();
         }
     }