【发布时间】:2020-10-05 07:09:43
【问题描述】:
我正在尝试根据用户角色在 Program 类中加载不同的 JSON 文件。我在站点上使用 Windows 身份验证和存储角色的基本表。我稍后加载实现 IClaimsTransformation 的角色,没有任何问题,但我无法在此之前确定请求者用户...
我只在调用 System.Security.Principal.WindowsIdentity.GetCurrent().Name 时获得 DOMAIN\MACHINE$;
任何关于如何让 windows 用户在那里的想法?这是我的 Program.cs 文件:
public static void Main(string[] args)
{
using (var context = new ManualBookingContext("xxx"))
{
var user = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
User dbUser = context.Users.Include(x => x.UserRoles).ThenInclude(x => x.Role).FirstOrDefault(x => x.Username.ToLower() == user.ToLower());
if(dbUser != null)
args = dbUser.UserRoles.Select(u => u.Role.Name).ToArray();
}
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
var sidebar = "sidebar.json";
foreach (var arg in args)
{
if (arg == "Admin")
sidebar = "sidebar-admin.json";
}
return Host.CreateDefaultBuilder()
.ConfigureAppConfiguration((hostingContext, config) =>
{
config.AddJsonFile(sidebar,
optional: true,
reloadOnChange: true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
【问题讨论】:
标签: asp.net-core model-view-controller asp.net-core-3.1