auth cookie expires after 30 days

only check hit offset when distance > 3 meters
fix null reference on unauthorized user
fixed stats not showing on profile if anticheat disabled
server client history turns red server is unresponsive
This commit is contained in:
RaidMax
2018-04-04 23:38:45 -05:00
parent c0865b82a0
commit 6d8d021b16
29 changed files with 455 additions and 352 deletions

View File

@ -2,6 +2,7 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication.Cookies;
using System.Security.Claims;
using System;
namespace WebfrontCore.Controllers
{
@ -15,23 +16,37 @@ namespace WebfrontCore.Controllers
return Unauthorized();
}
var client = IW4MAdmin.Program.ServerManager.PrivilegedClients[userId];
string[] hashedPassword = await Task.FromResult(SharedLibrary.Helpers.Hashing.Hash(password, client.PasswordSalt));
if (hashedPassword[0] == client.Password)
try
{
var claims = new[]
var client = IW4MAdmin.Program.ServerManager.PrivilegedClients[userId];
string[] hashedPassword = await Task.FromResult(SharedLibrary.Helpers.Hashing.Hash(password, client.PasswordSalt));
if (hashedPassword[0] == client.Password)
{
var claims = new[]
{
new Claim(ClaimTypes.NameIdentifier, client.Name),
new Claim(ClaimTypes.Role, client.Level.ToString()),
new Claim(ClaimTypes.Sid, client.ClientId.ToString())
};
var claimsIdentity = new ClaimsIdentity(claims, "login");
var claimsPrinciple = new ClaimsPrincipal(claimsIdentity);
await HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrinciple);
var claimsIdentity = new ClaimsIdentity(claims, "login");
var claimsPrinciple = new ClaimsPrincipal(claimsIdentity);
await HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrinciple, new Microsoft.AspNetCore.Http.Authentication.AuthenticationProperties()
{
AllowRefresh = true,
ExpiresUtc = DateTime.UtcNow.AddDays(30),
IsPersistent = true,
IssuedUtc = DateTime.UtcNow
});
return Ok();
return Ok();
}
}
catch (Exception)
{
return Unauthorized();
}
return Unauthorized();

View File

@ -82,7 +82,7 @@ namespace WebfrontCore.Controllers
{
new InputInfo()
{
Name = "UserID"
Name = "User ID"
},
new InputInfo()
{

View File

@ -30,8 +30,12 @@ namespace WebfrontCore.Controllers
{
var server = Manager.Servers.First(s => s.GetHashCode() == serverId);
var client = User.AsPlayer();
client.CurrentServer = server;
var client = new Player()
{
ClientId = User.ClientId,
Level = User.Level,
CurrentServer = server
};
var remoteEvent = new Event(Event.GType.Say, command, client, null, server);

View File

@ -35,7 +35,7 @@ namespace WebfrontCore.Controllers
LevelInt = (int)p.Level
}).ToList(),
ChatHistory = s.ChatHistory.OrderBy(c => c.Time).Take((int)Math.Ceiling(s.ClientNum / 2.0)).ToArray(),
PlayerHistory = s.PlayerHistory.ToArray()
PlayerHistory = s.PlayerHistory.ToArray(),
};
return PartialView("_ClientActivity", serverInfo);
}