c# - 如何在我的控制器文件中的 dot net 中获取用户名?
问题描述
我正在开发一个 ASP.NET Core 5.0 MVC 应用程序。它使用 Windows 身份验证。我仍然只从 Visual Studio 运行它。
我可以在*.cshtml
文件中使用@Environment.UserName
. 我怎样才能UserName
在我的控制器 ->*.cs
文件中得到相同的结果?
我收到一个错误
类型名称“用户名”在类型环境中不存在
解决方案
我创建了两个带有 Windows 身份验证的示例项目(.net 3.1 和 .net 5.0)。我使用下面的代码,我可以得到用户名。
而我的控制器只使用默认的 HomeController。
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using WebApplication2.Models;
namespace WebApplication2.Controllers
{
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public string GetUserName()
{
return Environment.UserName;
}
public string GetName()
{
// It also works for me
//return User.Identity.Name;
return HttpContext.User.Identity.Name;
}
}
推荐阅读
- r - if_else 在 dplyr::mutate 中没有按预期工作
- performance - 如果不是根据需要更改大量文件权限
- angular - 如何将布尔值从 http 请求发送到组件?(Angular)
- matlab - MATLAB 的隐式广播是否根据周围代码进行优化?
- azure - vpn 和 mproto 代理将他们的访问权限分配给 azure 私有 ip 而不是公共 ip
- envoyproxy - lua 之前的 Envoy ext_authz 过滤器
- django-rest-framework - 如何使用 django rest api 为注册用户发送电子邮件确认
- c - STM32H7 SPI Nor Flash 设备总是忙 IS25LP128F
- azure - 未指定源参数 cake
- r - R中多项式MLE的简单数值估计问题