在 ASP .NET Core 6.0 中获取 Windows 用户名

2024-04-18

我目前正在尝试将 ASP.NET Core 5.0 项目迁移到 ASP.NET Core 6.0。 Window 用户名显示在.NET 5.0 上。但是,对于 .NET 6 项目,窗口用户名始终使用匿名用户。我不确定我是否缺少任何代码。欢迎任何帮助/建议!

.NET CORE 6.0 窗口用户.NET CORE 6.0 窗口用户 https://i.stack.imgur.com/2bGSK.jpg

老.NET CORE 5.0 Window用户.NET CORE 5.0 窗口用户 https://i.stack.imgur.com/FBiUN.jpg

launchSettings.json

"iisSettings": {
    "windowsAuthentication": true,
    "anonymousAuthentication": false,
    "iisExpress": {
      "applicationUrl": "http://localhost:55305",
      "sslPort": 44383
    }
  }
Program.cs

using Microsoft.AspNetCore.Server.IISIntegration;
using Microsoft.AspNetCore.Authentication.Negotiate;

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.

builder.Services.AddControllersWithViews();
builder.Services.AddHttpContextAccessor();

builder.Services.AddSession(options => {
    options.IdleTimeout = TimeSpan.FromMinutes(120);//You can set Time   
});

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // 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.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseSession();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=index}/{id?}");

app.Run();
HomeController.cs

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using WebApplication1.Models;

namespace WebApplication1.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        private readonly IHttpContextAccessor? _httpContextAccessor;

        public HomeController(ILogger<HomeController> logger, IHttpContextAccessor httpContextAccessor)
        {
            _logger = logger;
            _httpContextAccessor = httpContextAccessor;
            string CurrentUserName = httpContextAccessor.HttpContext?.User.Identity?.Name;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

出现这个问题的原因是因为你缺少这行代码。

// pls add this line
app.UseAuthentication();
app.UseAuthorization();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ASP .NET Core 6.0 中获取 Windows 用户名 的相关文章

随机推荐

  • requireJS 与文件上传插件

    在requirejs中 我们可以通过以下方式设置js的名称 requirejs config paths jquery cdnjs cloudflare com ajax libs jquery 2 1 0 jquery min js 并将
  • 捕获 UserControl 中的 KeyDown 事件

    我有一个带有多个子控件的用户控件 我需要用户界面对按键做出反应 因此我决定将处理代码放入 MainControl KeyDown 事件中 但是 当我在应用程序中按下某个键时 该事件不会触发 我通过搜索引擎找到了一个依赖于使用 Windows
  • Ajax jquery 异步返回值

    我怎样才能让这段代码返回值无需冻结浏览器 当然 您可以用新方法重写它 function get char val merk var returnValue null ajax type POST async false url char i
  • js 异步/等待不工作

    我正在尝试了解 async await 以及如何使用它们 我正在遵循一些我见过的例子 我认为 但等待实际上并不是在等待ajax响应 这是代码 async function doAjaxGet ajaxurl const result awa
  • 在ggplot2中水平均匀分布点

    我想绘制计数的垂直箱线图 并将计数显示为点 覆盖在箱线图上 因为它们是离散值 所以会有多个点具有相同的值 为了在 ggplot2 中显示数据 我可以使用 geom jitter 来传播数据并获得稍微好一点的印象 但是抖动会破坏值 垂直分量
  • MySQL插入查询优化

    将大量行插入表中时 以下两种方法中哪一种会更快 查询方法一 逐条执行查询 INSERT INTO tbl user id name number VALUES NULL A 9999999999 INSERT INTO tbl user i
  • 更精确的 distance_of_time_in_words

    distance of time in words很棒 但有时不够精细 我需要一个能够以文字报告准确时间距离的函数 例如 上午 7 50 到上午 10 10 的距离应该是 2 小时 20 分钟 而不是 大约 2 小时 或其他什么distan
  • HighChart:多个图表的绘图线单击事件

    我正在使用 highchart 来实现一些向下钻取功能 我有一个功能可以让用户单击面积图并添加一条线 但后来我发现我的函数有一个错误 这些图表之间应该只有一条红线 但是当用户单击另一个图表时 第一个图表上的现有红线不会被删除 以下是我分享的
  • 如何将jupyter笔记本目录中的模块导入到较低目录的笔记本中? [复制]

    这个问题在这里已经有答案了 我使用 Jupyter Notebook 进行数据分析已经有一段时间了 我想在我的 jupyter 笔记本目录中开发一个模块 并能够将该新模块导入到笔记本中 我的jupyter笔记本文件目录可以表示如下 Jupy
  • dataframe.transpose() 没有转置

    我有一个数据框 df5 我想将列转置为行 反之亦然 DayofWeek Avg Shopping Trips Avg Profit 0 5 Saturday 1096 750000 185040 397500 1 6 Sunday 1489
  • Java 6 中的 xerces 序列化

    在 Java 6 中 整个 xerces XML 解析器 序列化器实现现在位于 Java 运行时 rt jar 中 这些包已移至 com sun 命名空间下 这使得它们无法在客户端代码中进行显式引用 使用解析器时这不是问题 解析器是通过 j
  • 为什么 Assert.AreEqual(T obj1, Tobj2) 对于相同的对象会失败

    我有一个包含多个结构的类 public class NavigationMenu public struct NavigationMenuItem public bool Enabled get set public int NumberO
  • Keras:实际使用的 GPU 内存量

    我正在使用带有 Tensorflow 后端的 Keras 并查看nvidia smi不足以了解当前网络架构需要多少内存 因为 Tensorflow 似乎只是分配所有可用内存 那么问题是如何找出真实的GPU内存使用情况 这可以使用时间轴来完成
  • java.lang.NoClassDefFoundError:freemarker/template/TemplateModelException

    尝试打造先进HTML报告使用extentReportsjar 但它抛出以下错误 java lang NoClassDefFoundError freemarker 模板 TemplateModelException Code public
  • 如何从另一个sh文件运行sh文件

    我有一个用于监视我的应用程序的 shell 脚本文件 该脚本将通过设置 cron 作业每 10 分钟执行一次 我想更多一些与监控相关的脚本文件应该与主文件一起执行 所以我想将我的脚本包含到主文件中 如何从主 sh 文件运行这些 sh 文件
  • 如何在Windows8应用程序中使用ReadTextAsync(StorageFile file)同步获取返回值

    基本上 我的代码是一个非常简单的测试 用于在 Windows 8 风格的应用程序中写入和读取文件 这里 首先将字符串 Jessie 写入dataFile txt 然后由程序读取它 以便更新xaml中Textblock的Text属性 从msd
  • 仅在一个模块中修补方法

    例如 我有一些模块 foo py 与下一个代码 import requests def get ip return requests get http jsonip com content 及模块bar py具有类似的代码 import r
  • 我可以根据每个请求更改 AWS Lambda 的公共 IP 吗?

    我希望每次提出请求时都能获得一个新的公共 IP 是否可以有目的地触发我的 IP 被重新配置 默认情况下 根据您的配置 从 VPC 中一个或多个子网内的私有 IP 调用 Lambda 函数 未配置公共IP 他们被分配了私有IP 如果要求为 L
  • 为什么我的散景图在 github 上不起作用?

    我在 github 上有一个私人仓库 并且正在尝试散景 我在本地编辑 ipython 笔记本中的文件 可以看到该图正在运行 当我将它们推送到 github 并尝试在线可视化时 我可以看到除图表之外的所有代码 在 nbviewer 上我可以看
  • 在 ASP .NET Core 6.0 中获取 Windows 用户名

    我目前正在尝试将 ASP NET Core 5 0 项目迁移到 ASP NET Core 6 0 Window 用户名显示在 NET 5 0 上 但是 对于 NET 6 项目 窗口用户名始终使用匿名用户 我不确定我是否缺少任何代码 欢迎任何