Initial import from local backup (Documents-Playground/pakerpale)
This commit is contained in:
15
Auth.api.csproj
Normal file
15
Auth.api.csproj
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||||
|
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.App" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
|
||||||
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
|
||||||
|
<PackageReference Include="MySql.Data.EntityFrameworkCore" Version="8.0.11" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
107
Controllers/UserController.cs
Normal file
107
Controllers/UserController.cs
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
using Auth.api.Models;
|
||||||
|
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
using Auth.api.Internal;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
using Auth.api.Services;
|
||||||
|
|
||||||
|
using Auth.api.Repositories;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace Auth.api.Controllers
|
||||||
|
{
|
||||||
|
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class UserController : ControllerBase
|
||||||
|
{
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private UserContext _context;
|
||||||
|
private PostContext _postContext;
|
||||||
|
|
||||||
|
private IUserService _userService;
|
||||||
|
|
||||||
|
public UserController(ILogger<UserController> logger, UserContext context, IUserService userService, PostContext postContext)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_context = context;
|
||||||
|
_userService = userService;
|
||||||
|
_postContext = postContext;
|
||||||
|
|
||||||
|
if ( _postContext.Posts.Count() == 0 )
|
||||||
|
{
|
||||||
|
// 테스트용
|
||||||
|
// Create a new Student if collection is empty,
|
||||||
|
// which means you can't delete all Student.
|
||||||
|
// _postContext.Posts.Add(new Auth.api.Entities.Post { postID=1, postTitle = "ORM", postImage="Entity" });
|
||||||
|
// _postContext.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowAnonymous]
|
||||||
|
[HttpPost("authenticate")]
|
||||||
|
public IActionResult Authenticate([FromBody]Auth.api.Entities.User userParam)
|
||||||
|
{
|
||||||
|
var user = _userService.Authenticate(userParam.Username, userParam.Password);
|
||||||
|
|
||||||
|
if (user == null)
|
||||||
|
return BadRequest(new { message = "Username or password is incorrect" });
|
||||||
|
|
||||||
|
return Ok(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET api/values/5
|
||||||
|
[HttpGet("posts/{id}")]
|
||||||
|
public ActionResult<Auth.api.Entities.Post> Get(string id)
|
||||||
|
{
|
||||||
|
return Ok(_postContext.Posts.Find(20027));
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET api/values
|
||||||
|
[HttpGet]
|
||||||
|
public ActionResult<List<User>> Get()
|
||||||
|
{
|
||||||
|
return Ok(_context.GetAllUsers());
|
||||||
|
}
|
||||||
|
|
||||||
|
// GET api/values/5
|
||||||
|
[HttpGet("{id}")]
|
||||||
|
public ActionResult<string> Get(int id)
|
||||||
|
{
|
||||||
|
return Ok(_context.GetAllUsers());
|
||||||
|
}
|
||||||
|
|
||||||
|
// POST api/values
|
||||||
|
[HttpPost]
|
||||||
|
public void Post([FromBody] string value)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// PUT api/values/5
|
||||||
|
[HttpPut("{id}")]
|
||||||
|
public void Put(int id, [FromBody] string value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// DELETE api/values/5
|
||||||
|
[HttpDelete("{id}")]
|
||||||
|
public void Delete(int id)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
39
Controllers/UsersController.cs
Normal file
39
Controllers/UsersController.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Auth.api.Services;
|
||||||
|
using Auth.api.Entities;
|
||||||
|
|
||||||
|
namespace WebApi.Controllers
|
||||||
|
{
|
||||||
|
[Authorize]
|
||||||
|
[ApiController]
|
||||||
|
[Route("[controller]")]
|
||||||
|
public class UsersController : ControllerBase
|
||||||
|
{
|
||||||
|
private IUserService _userService;
|
||||||
|
|
||||||
|
public UsersController(IUserService userService)
|
||||||
|
{
|
||||||
|
_userService = userService;
|
||||||
|
}
|
||||||
|
|
||||||
|
[AllowAnonymous]
|
||||||
|
[HttpPost("authenticate")]
|
||||||
|
public IActionResult Authenticate([FromBody]User userParam)
|
||||||
|
{
|
||||||
|
var user = _userService.Authenticate(userParam.Username, userParam.Password);
|
||||||
|
|
||||||
|
if (user == null)
|
||||||
|
return BadRequest(new { message = "Username or password is incorrect" });
|
||||||
|
|
||||||
|
return Ok(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public IActionResult GetAll()
|
||||||
|
{
|
||||||
|
var users = _userService.GetAll();
|
||||||
|
return Ok(users);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Entities/Post.cs
Normal file
17
Entities/Post.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Auth.api.Entities
|
||||||
|
{
|
||||||
|
[Table("cm_post")]
|
||||||
|
public class Post
|
||||||
|
{
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||||
|
public int postID { get; set; }
|
||||||
|
public string postTitle { get; set; }
|
||||||
|
public string postImage { get; set; }
|
||||||
|
public string datePosted { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
12
Entities/User.cs
Normal file
12
Entities/User.cs
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
namespace Auth.api.Entities
|
||||||
|
{
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
public string FirstName { get; set; }
|
||||||
|
public string LastName { get; set; }
|
||||||
|
public string Username { get; set; }
|
||||||
|
public string Password { get; set; }
|
||||||
|
public string Token { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
7
Helpers/AppSettings.cs
Normal file
7
Helpers/AppSettings.cs
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
namespace Auth.api.Helpers
|
||||||
|
{
|
||||||
|
public class AppSettings
|
||||||
|
{
|
||||||
|
public string Secret { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
100
Internal/LoggerExtensions.cs
Normal file
100
Internal/LoggerExtensions.cs
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
using System;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Auth.api.Internal
|
||||||
|
{
|
||||||
|
public static class LoggerExtensions
|
||||||
|
{
|
||||||
|
#region snippet1
|
||||||
|
private static readonly Action<ILogger, string, Exception> _info;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet2
|
||||||
|
private static readonly Action<ILogger, string, Exception> _quoteAdded;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet3
|
||||||
|
private static readonly Action<ILogger, string, int, Exception> _quoteDeleted;
|
||||||
|
private static readonly Action<ILogger, int, Exception> _quoteDeleteFailed;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet4
|
||||||
|
private static Func<ILogger, int, IDisposable> _allQuotesDeletedScope;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
static LoggerExtensions()
|
||||||
|
{
|
||||||
|
#region snippet5
|
||||||
|
_info = LoggerMessage.Define<string>(
|
||||||
|
LogLevel.Information,
|
||||||
|
new EventId(1, nameof(info)),
|
||||||
|
"[API] Request {requested} started.");
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet6
|
||||||
|
_quoteAdded = LoggerMessage.Define<string>(
|
||||||
|
LogLevel.Information,
|
||||||
|
new EventId(2, nameof(QuoteAdded)),
|
||||||
|
"Quote added (Quote = '{Quote}')");
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Reserve EventId: 3 (QuoteModified)
|
||||||
|
|
||||||
|
#region snippet7
|
||||||
|
_quoteDeleted = LoggerMessage.Define<string, int>(
|
||||||
|
LogLevel.Information,
|
||||||
|
new EventId(4, nameof(QuoteDeleted)),
|
||||||
|
"Quote deleted (Quote = '{Quote}' Id = {Id})");
|
||||||
|
|
||||||
|
_quoteDeleteFailed = LoggerMessage.Define<int>(
|
||||||
|
LogLevel.Error,
|
||||||
|
new EventId(5, nameof(QuoteDeleteFailed)),
|
||||||
|
"Quote delete failed (Id = {Id})");
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet8
|
||||||
|
_allQuotesDeletedScope =
|
||||||
|
LoggerMessage.DefineScope<int>("All quotes deleted (Count = {Count})");
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
#region snippet9
|
||||||
|
public static void info(this ILogger logger, string message)
|
||||||
|
{
|
||||||
|
_info(logger, message, null);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet10
|
||||||
|
public static void QuoteAdded(this ILogger logger, string quote)
|
||||||
|
{
|
||||||
|
_quoteAdded(logger, quote, null);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public static void QuoteModified(this ILogger logger, string id, string priorQuote, string newQuote)
|
||||||
|
{
|
||||||
|
// Reserve for future feature
|
||||||
|
}
|
||||||
|
|
||||||
|
#region snippet11
|
||||||
|
public static void QuoteDeleted(this ILogger logger, string quote, int id)
|
||||||
|
{
|
||||||
|
_quoteDeleted(logger, quote, id, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void QuoteDeleteFailed(this ILogger logger, int id, Exception ex)
|
||||||
|
{
|
||||||
|
_quoteDeleteFailed(logger, id, ex);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region snippet12
|
||||||
|
public static IDisposable AllQuotesDeletedScope(
|
||||||
|
this ILogger logger, int count)
|
||||||
|
{
|
||||||
|
return _allQuotesDeletedScope(logger, count);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Models/User.cs
Normal file
17
Models/User.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace Auth.api.Models
|
||||||
|
{
|
||||||
|
public class User
|
||||||
|
{
|
||||||
|
public int userID { get; set; }
|
||||||
|
|
||||||
|
public string userName { get; set; }
|
||||||
|
|
||||||
|
public string name { get; set; }
|
||||||
|
|
||||||
|
public string email { get; set; }
|
||||||
|
|
||||||
|
public string password { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
79
Models/UserContext.cs
Normal file
79
Models/UserContext.cs
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
using MySql.Data.MySqlClient;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Auth.api.Models
|
||||||
|
{
|
||||||
|
public class UserContext
|
||||||
|
{
|
||||||
|
public string ConnectionString { get; set; }
|
||||||
|
|
||||||
|
public UserContext(string connectionString)
|
||||||
|
{
|
||||||
|
this.ConnectionString = connectionString;
|
||||||
|
}
|
||||||
|
|
||||||
|
// private MySqlConnection GetConnection()
|
||||||
|
// {
|
||||||
|
// return new MySqlConnection(ConnectionString);
|
||||||
|
// }
|
||||||
|
|
||||||
|
public List<User> GetAllUsers()
|
||||||
|
{
|
||||||
|
List<User> list = new List<User>();
|
||||||
|
|
||||||
|
// using (MySqlConnection conn = GetConnection())
|
||||||
|
// {
|
||||||
|
// conn.Open();
|
||||||
|
// MySqlCommand cmd = new MySqlCommand("select * from cm_user where 1 limit 10", conn);
|
||||||
|
|
||||||
|
// using (var reader = cmd.ExecuteReader())
|
||||||
|
// {
|
||||||
|
// while (reader.Read())
|
||||||
|
// {
|
||||||
|
// list.Add(new User()
|
||||||
|
// {
|
||||||
|
// userID = Convert.ToInt32(reader["userID"]),
|
||||||
|
// userName = reader["userName"].ToString(),
|
||||||
|
// name = reader["name"].ToString(),
|
||||||
|
// email = reader["email"].ToString(),
|
||||||
|
// password = reader["password"].ToString()
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<User> GetUserByUserId()
|
||||||
|
{
|
||||||
|
List<User> list = new List<User>();
|
||||||
|
|
||||||
|
// using (MySqlConnection conn = GetConnection())
|
||||||
|
// {
|
||||||
|
// conn.Open();
|
||||||
|
// MySqlCommand cmd = new MySqlCommand("select * from cm_user where t 10", conn);
|
||||||
|
|
||||||
|
// using (var reader = cmd.ExecuteReader())
|
||||||
|
// {
|
||||||
|
// while (reader.Read())
|
||||||
|
// {
|
||||||
|
// list.Add(new User()
|
||||||
|
// {
|
||||||
|
// userID = Convert.ToInt32(reader["userID"]),
|
||||||
|
// userName = reader["userName"].ToString(),
|
||||||
|
// name = reader["name"].ToString(),
|
||||||
|
// email = reader["email"].ToString(),
|
||||||
|
// password = reader["password"].ToString()
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
24
Program.cs
Normal file
24
Program.cs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Auth.api
|
||||||
|
{
|
||||||
|
public class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
CreateWebHostBuilder(args).Build().Run();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
|
||||||
|
WebHost.CreateDefaultBuilder(args)
|
||||||
|
.UseStartup<Startup>();
|
||||||
|
}
|
||||||
|
}
|
||||||
30
Properties/launchSettings.json
Normal file
30
Properties/launchSettings.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"$schema": "http://json.schemastore.org/launchsettings.json",
|
||||||
|
"iisSettings": {
|
||||||
|
"windowsAuthentication": false,
|
||||||
|
"anonymousAuthentication": true,
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:64514",
|
||||||
|
"sslPort": 44347
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "api/values",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Auth.api": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"launchUrl": "api/values",
|
||||||
|
"applicationUrl": "https://localhost:5001;http://localhost:5000",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
Repositories/PostContext.cs
Normal file
14
Repositories/PostContext.cs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
using Auth.api.Entities;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
|
||||||
|
namespace Auth.api.Repositories
|
||||||
|
{
|
||||||
|
public class PostContext : DbContext
|
||||||
|
{
|
||||||
|
public DbSet<Post> Posts { get; set; }
|
||||||
|
|
||||||
|
public PostContext( DbContextOptions<PostContext> options )
|
||||||
|
: base(options)
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
}
|
||||||
73
Services/UserService.cs
Normal file
73
Services/UserService.cs
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IdentityModel.Tokens.Jwt;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Claims;
|
||||||
|
using System.Text;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
using Auth.api.Entities;
|
||||||
|
using Auth.api.Helpers;
|
||||||
|
|
||||||
|
namespace Auth.api.Services
|
||||||
|
{
|
||||||
|
public interface IUserService
|
||||||
|
{
|
||||||
|
User Authenticate(string username, string password);
|
||||||
|
IEnumerable<User> GetAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class UserService : IUserService
|
||||||
|
{
|
||||||
|
// users hardcoded for simplicity, store in a db with hashed passwords in production applications
|
||||||
|
private List<User> _users = new List<User>
|
||||||
|
{
|
||||||
|
new User { Id = 1, FirstName = "Test", LastName = "User", Username = "test", Password = "test" }
|
||||||
|
};
|
||||||
|
|
||||||
|
private readonly AppSettings _appSettings;
|
||||||
|
|
||||||
|
public UserService(IOptions<AppSettings> appSettings)
|
||||||
|
{
|
||||||
|
_appSettings = appSettings.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public User Authenticate(string username, string password)
|
||||||
|
{
|
||||||
|
var user = _users.SingleOrDefault(x => x.Username == username && x.Password == password);
|
||||||
|
|
||||||
|
// return null if user not found
|
||||||
|
if (user == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
// authentication successful so generate jwt token
|
||||||
|
var tokenHandler = new JwtSecurityTokenHandler();
|
||||||
|
var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
|
||||||
|
var tokenDescriptor = new SecurityTokenDescriptor
|
||||||
|
{
|
||||||
|
Subject = new ClaimsIdentity(new Claim[]
|
||||||
|
{
|
||||||
|
new Claim(ClaimTypes.Name, user.Id.ToString())
|
||||||
|
}),
|
||||||
|
Expires = DateTime.UtcNow.AddDays(7),
|
||||||
|
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
|
||||||
|
};
|
||||||
|
var token = tokenHandler.CreateToken(tokenDescriptor);
|
||||||
|
user.Token = tokenHandler.WriteToken(token);
|
||||||
|
|
||||||
|
// remove password before returning
|
||||||
|
user.Password = null;
|
||||||
|
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<User> GetAll()
|
||||||
|
{
|
||||||
|
// return users without passwords
|
||||||
|
return _users.Select(x => {
|
||||||
|
x.Password = null;
|
||||||
|
return x;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
119
Startup.cs
Normal file
119
Startup.cs
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Builder;
|
||||||
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.HttpsPolicy;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.Extensions.Configuration;
|
||||||
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
|
using MySql.Data.EntityFrameworkCore;
|
||||||
|
using MySql.Data.EntityFrameworkCore.Extensions;
|
||||||
|
using Microsoft.IdentityModel.Tokens;
|
||||||
|
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||||
|
|
||||||
|
using Auth.api.Models;
|
||||||
|
|
||||||
|
using Auth.api.Helpers;
|
||||||
|
|
||||||
|
using Auth.api.Services;
|
||||||
|
|
||||||
|
using Auth.api.Repositories;
|
||||||
|
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace Auth.api
|
||||||
|
{
|
||||||
|
public class Startup
|
||||||
|
{
|
||||||
|
public Startup(IHostingEnvironment env)
|
||||||
|
{
|
||||||
|
var builder = new ConfigurationBuilder()
|
||||||
|
.SetBasePath(env.ContentRootPath)
|
||||||
|
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
|
||||||
|
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
|
||||||
|
.AddEnvironmentVariables();
|
||||||
|
Configuration = builder.Build();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IConfiguration Configuration { get; }
|
||||||
|
|
||||||
|
// This method gets called by the runtime. Use this method to add services to the container.
|
||||||
|
public void ConfigureServices(IServiceCollection services)
|
||||||
|
{
|
||||||
|
// Add framework services.
|
||||||
|
services.AddCors();
|
||||||
|
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
|
||||||
|
|
||||||
|
// configure strongly typed settings objects
|
||||||
|
var appSettingsSection = Configuration.GetSection("AppSettings");
|
||||||
|
services.Configure<AppSettings>(appSettingsSection);
|
||||||
|
|
||||||
|
|
||||||
|
// configure jwt authentication
|
||||||
|
var appSettings = appSettingsSection.Get<AppSettings>();
|
||||||
|
var key = Encoding.ASCII.GetBytes(appSettings.Secret);
|
||||||
|
services.AddAuthentication(x =>
|
||||||
|
{
|
||||||
|
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||||
|
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||||
|
})
|
||||||
|
.AddJwtBearer(x =>
|
||||||
|
{
|
||||||
|
x.RequireHttpsMetadata = false;
|
||||||
|
x.SaveToken = true;
|
||||||
|
x.TokenValidationParameters = new TokenValidationParameters
|
||||||
|
{
|
||||||
|
ValidateIssuerSigningKey = true,
|
||||||
|
IssuerSigningKey = new SymmetricSecurityKey(key),
|
||||||
|
ValidateIssuer = false,
|
||||||
|
ValidateAudience = false
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// configure DI for application services
|
||||||
|
services.AddScoped<IUserService, UserService>();
|
||||||
|
|
||||||
|
services.Add(new ServiceDescriptor(typeof(UserContext), new UserContext(Configuration.GetConnectionString("DefaultConnection"))));
|
||||||
|
|
||||||
|
// Simple ORM db Connection
|
||||||
|
// services.AddDbContext<PostContext>(opt =>
|
||||||
|
// opt.UseMySql(Configuration.GetConnectionString("DefaultConnection")));
|
||||||
|
|
||||||
|
// Better ORM db Connection Pool
|
||||||
|
services.AddDbContextPool<PostContext>(
|
||||||
|
options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), // replace with your Connection String
|
||||||
|
mySqlOptions =>
|
||||||
|
{
|
||||||
|
mySqlOptions.ServerVersion(new Version(10, 1, 38), ServerType.MariaDb); // replace with your Server Version and Type
|
||||||
|
}
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
|
||||||
|
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
|
||||||
|
{
|
||||||
|
if (env.IsDevelopment())
|
||||||
|
{
|
||||||
|
app.UseDeveloperExceptionPage();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||||
|
app.UseHsts();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
app.UseAuthentication();
|
||||||
|
app.UseMvc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
9
appsettings.Development.json
Normal file
9
appsettings.Development.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Debug",
|
||||||
|
"System": "Information",
|
||||||
|
"Microsoft": "Information"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
14
appsettings.json
Normal file
14
appsettings.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"AppSettings": {
|
||||||
|
"Secret": "TP8m7KXUgjW8x4j2"
|
||||||
|
},
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*",
|
||||||
|
"ConnectionStrings": {
|
||||||
|
"DefaultConnection": "server=localhost;port=3306;database=crossmap_dev;user=alex;password=alex88003;SslMode=none"
|
||||||
|
}
|
||||||
|
}
|
||||||
5401
bin/Debug/netcoreapp2.2/Auth.api.deps.json
Normal file
5401
bin/Debug/netcoreapp2.2/Auth.api.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
bin/Debug/netcoreapp2.2/Auth.api.dll
Normal file
BIN
bin/Debug/netcoreapp2.2/Auth.api.dll
Normal file
Binary file not shown.
BIN
bin/Debug/netcoreapp2.2/Auth.api.pdb
Normal file
BIN
bin/Debug/netcoreapp2.2/Auth.api.pdb
Normal file
Binary file not shown.
9
bin/Debug/netcoreapp2.2/Auth.api.runtimeconfig.dev.json
Normal file
9
bin/Debug/netcoreapp2.2/Auth.api.runtimeconfig.dev.json
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"additionalProbingPaths": [
|
||||||
|
"C:\\Users\\Jeonghwa Koo\\.dotnet\\store\\|arch|\\|tfm|",
|
||||||
|
"C:\\Users\\Jeonghwa Koo\\.nuget\\packages",
|
||||||
|
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
12
bin/Debug/netcoreapp2.2/Auth.api.runtimeconfig.json
Normal file
12
bin/Debug/netcoreapp2.2/Auth.api.runtimeconfig.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"runtimeOptions": {
|
||||||
|
"tfm": "netcoreapp2.2",
|
||||||
|
"framework": {
|
||||||
|
"name": "Microsoft.AspNetCore.App",
|
||||||
|
"version": "2.2.0"
|
||||||
|
},
|
||||||
|
"configProperties": {
|
||||||
|
"System.GC.Server": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
obj/Auth.api.csproj.nuget.cache
Normal file
5
obj/Auth.api.csproj.nuget.cache
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"dgSpecHash": "39mrpCZGEIg5bh8up4xiEQXeQVMhLPtDWIjkDQSFaYKUYiAxThhDa5o+3hxtw26TqFwRe2rqzeIpnSr9pmUnug==",
|
||||||
|
"success": true
|
||||||
|
}
|
||||||
79
obj/Auth.api.csproj.nuget.dgspec.json
Normal file
79
obj/Auth.api.csproj.nuget.dgspec.json
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"D:\\dev\\crossmap\\cm.net\\CMedia\\Users\\Auth.api\\Auth.api.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"D:\\dev\\crossmap\\cm.net\\CMedia\\Users\\Auth.api\\Auth.api.csproj": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "D:\\dev\\crossmap\\cm.net\\CMedia\\Users\\Auth.api\\Auth.api.csproj",
|
||||||
|
"projectName": "Auth.api",
|
||||||
|
"projectPath": "D:\\dev\\crossmap\\cm.net\\CMedia\\Users\\Auth.api\\Auth.api.csproj",
|
||||||
|
"packagesPath": "C:\\Users\\Jeonghwa Koo\\.nuget\\packages\\",
|
||||||
|
"outputPath": "D:\\dev\\crossmap\\cm.net\\CMedia\\Users\\Auth.api\\obj\\",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"fallbackFolders": [
|
||||||
|
"C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
|
||||||
|
],
|
||||||
|
"configFilePaths": [
|
||||||
|
"C:\\Users\\Jeonghwa Koo\\AppData\\Roaming\\NuGet\\NuGet.Config",
|
||||||
|
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"netcoreapp2.2"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netcoreapp2.2": {
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netcoreapp2.2": {
|
||||||
|
"dependencies": {
|
||||||
|
"Microsoft.AspNetCore.App": {
|
||||||
|
"suppressParent": "All",
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[2.2.0, )",
|
||||||
|
"autoReferenced": true
|
||||||
|
},
|
||||||
|
"Microsoft.AspNetCore.Razor.Design": {
|
||||||
|
"suppressParent": "All",
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[2.2.0, )"
|
||||||
|
},
|
||||||
|
"Microsoft.NETCore.App": {
|
||||||
|
"suppressParent": "All",
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[2.2.0, )",
|
||||||
|
"autoReferenced": true
|
||||||
|
},
|
||||||
|
"MySql.Data.EntityFrameworkCore": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[8.0.11, )"
|
||||||
|
},
|
||||||
|
"Pomelo.EntityFrameworkCore.MySql": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[2.2.0, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
29
obj/Auth.api.csproj.nuget.g.props
Normal file
29
obj/Auth.api.csproj.nuget.g.props
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Jeonghwa Koo\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.1.0</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.2.0\build\netcoreapp2.2\Microsoft.NETCore.App.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.2.0\build\netcoreapp2.2\Microsoft.NETCore.App.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded\2.2.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded\2.2.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.usersecrets\2.2.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.usersecrets\2.2.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.design\2.2.0\build\netcoreapp2.0\Microsoft.EntityFrameworkCore.Design.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.design\2.2.0\build\netcoreapp2.0\Microsoft.EntityFrameworkCore.Design.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.extensions\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.extensions\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.razor.design\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Razor.Design.props')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.2.0\build\netcoreapp2.2\Microsoft.AspNetCore.App.props" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.2.0\build\netcoreapp2.2\Microsoft.AspNetCore.App.props')" />
|
||||||
|
</ImportGroup>
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<PkgMicrosoft_EntityFrameworkCore_Tools Condition=" '$(PkgMicrosoft_EntityFrameworkCore_Tools)' == '' ">C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.2.0</PkgMicrosoft_EntityFrameworkCore_Tools>
|
||||||
|
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\Jeonghwa Koo\.nuget\packages\microsoft.codeanalysis.analyzers\1.1.0</PkgMicrosoft_CodeAnalysis_Analyzers>
|
||||||
|
<PkgMicrosoft_AspNetCore_Razor_Design Condition=" '$(PkgMicrosoft_AspNetCore_Razor_Design)' == '' ">C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.razor.design\2.2.0</PkgMicrosoft_AspNetCore_Razor_Design>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
17
obj/Auth.api.csproj.nuget.g.targets
Normal file
17
obj/Auth.api.csproj.nuget.g.targets
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\netstandard.library\2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.2.0\build\netcoreapp2.2\Microsoft.NETCore.App.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.netcore.app\2.2.0\build\netcoreapp2.2\Microsoft.NETCore.App.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded\2.2.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.fileproviders.embedded\2.2.0\build\netstandard2.0\Microsoft.Extensions.FileProviders.Embedded.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.usersecrets\2.2.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.configuration.usersecrets\2.2.0\build\netstandard2.0\Microsoft.Extensions.Configuration.UserSecrets.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.extensions\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.extensions\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.Extensions.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.server.iisintegration\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Server.IISIntegration.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.server.iisintegration\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Server.IISIntegration.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.server.iis\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Server.IIS.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.server.iis\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Server.IIS.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.viewcompilation\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.viewcompilation\2.2.0\build\netstandard2.0\Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.targets')" />
|
||||||
|
<Import Project="C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.2.0\build\netcoreapp2.2\Microsoft.AspNetCore.App.targets" Condition="Exists('C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.2.0\build\netcoreapp2.2\Microsoft.AspNetCore.App.targets')" />
|
||||||
|
</ImportGroup>
|
||||||
|
</Project>
|
||||||
23
obj/Debug/netcoreapp2.2/Auth.api.AssemblyInfo.cs
Normal file
23
obj/Debug/netcoreapp2.2/Auth.api.AssemblyInfo.cs
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
// 런타임 버전:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
// 이러한 변경 내용이 손실됩니다.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Auth.api")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("Auth.api")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("Auth.api")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
|
// MSBuild WriteCodeFragment 클래스에서 생성되었습니다.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
9e4d3e97b0e34ede44271ab2801086b7e6829dca
|
||||||
1
obj/Debug/netcoreapp2.2/Auth.api.RazorAssemblyInfo.cache
Normal file
1
obj/Debug/netcoreapp2.2/Auth.api.RazorAssemblyInfo.cache
Normal file
@@ -0,0 +1 @@
|
|||||||
|
e14638d540abe4b15c497e9ccf9576c09ba6c06c
|
||||||
20
obj/Debug/netcoreapp2.2/Auth.api.RazorAssemblyInfo.cs
Normal file
20
obj/Debug/netcoreapp2.2/Auth.api.RazorAssemblyInfo.cs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// 이 코드는 도구를 사용하여 생성되었습니다.
|
||||||
|
// 런타임 버전:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
|
||||||
|
// 이러한 변경 내용이 손실됩니다.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute("Auth.api.Views")]
|
||||||
|
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute("2.1")]
|
||||||
|
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute("MVC-2.1")]
|
||||||
|
[assembly: Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute("MVC-2.1", "Microsoft.AspNetCore.Mvc.Razor.Extensions")]
|
||||||
|
|
||||||
|
// MSBuild WriteCodeFragment 클래스에서 생성되었습니다.
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
d3131bd11713d98298e3159b9648a49222fdc56c
|
||||||
BIN
obj/Debug/netcoreapp2.2/Auth.api.assets.cache
Normal file
BIN
obj/Debug/netcoreapp2.2/Auth.api.assets.cache
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
63cdfbc863eb305f59a8858c7516fbc3b8aea7f0
|
||||||
14
obj/Debug/netcoreapp2.2/Auth.api.csproj.FileListAbsolute.txt
Normal file
14
obj/Debug/netcoreapp2.2/Auth.api.csproj.FileListAbsolute.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\bin\Debug\netcoreapp2.2\Auth.api.deps.json
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\bin\Debug\netcoreapp2.2\Auth.api.runtimeconfig.json
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\bin\Debug\netcoreapp2.2\Auth.api.runtimeconfig.dev.json
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\bin\Debug\netcoreapp2.2\Auth.api.dll
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\bin\Debug\netcoreapp2.2\Auth.api.pdb
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.csprojAssemblyReference.cache
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.csproj.CoreCompileInputs.cache
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.RazorAssemblyInfo.cache
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.RazorAssemblyInfo.cs
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.AssemblyInfoInputs.cache
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.AssemblyInfo.cs
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.RazorTargetAssemblyInfo.cache
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.dll
|
||||||
|
D:\dev\crossmap\cm.net\CMedia\Users\Auth.api\obj\Debug\netcoreapp2.2\Auth.api.pdb
|
||||||
BIN
obj/Debug/netcoreapp2.2/Auth.api.csprojAssemblyReference.cache
Normal file
BIN
obj/Debug/netcoreapp2.2/Auth.api.csprojAssemblyReference.cache
Normal file
Binary file not shown.
BIN
obj/Debug/netcoreapp2.2/Auth.api.dll
Normal file
BIN
obj/Debug/netcoreapp2.2/Auth.api.dll
Normal file
Binary file not shown.
BIN
obj/Debug/netcoreapp2.2/Auth.api.pdb
Normal file
BIN
obj/Debug/netcoreapp2.2/Auth.api.pdb
Normal file
Binary file not shown.
2945
obj/Debug/netcoreapp2.2/project.razor.json
Normal file
2945
obj/Debug/netcoreapp2.2/project.razor.json
Normal file
File diff suppressed because it is too large
Load Diff
12407
obj/project.assets.json
Normal file
12407
obj/project.assets.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user