我正在try 在将框架从.net 4.8框架更新到. net8后修复代码.我正在处理代码中的一个问题:

controller.User = new GenericPrincipal(new GenericIdentity("test"), new[] { Roles.VirtualUser });

其中控制器.用户显然是只读的.这是用户在命名空间Microsoft.AspNetCore. mva中的样子:

 /// <summary>
 /// Gets the <see cref="ClaimsPrincipal"/> for user associated with the executing action.
 /// </summary>
 public ClaimsPrincipal User => HttpContext?.User!;

我不确定是什么导致此代码被破解.我读过类似的帖子,但我不相信其中任何一个有确切的问题.我发现我可能需要一个setter方法,但不相信我可以编辑库代码.如有任何建议/提示,我们将不胜感激.谢谢!

推荐答案

您可以使用ControllerBase.HttpContext中的一个.例如,在控制器的动作中:

HttpContext.User = 
   new GenericPrincipal(new GenericIdentity("test"), new[] { Roles.VirtualUser });

Csharp相关问答推荐

System.Text.Json Utf8JsonReader正在读取数组值两次

无法更改或使用C#(WinForms.NET)中的全局变量

在C# 11之前, struct 中的每个字段都必须显式分配?不能繁殖

当Visual Studio处于升级管理模式时,无法安装Torch运行时

自定义JsonEditor,用于将SON序列化为抽象类

禁用AutoSuggestBox项目更改时的动画?

程序集.加载从exe的异常

在C#中使用类中的对象值

创建临时Collection 最有效的方法是什么?堆栈分配和集合表达式之间的区别?

将现有字段映射到EFCore中的复杂类型

System.Net.Http.HttpClient.SendAsync(request)在docker容器内的POST方法30秒后停止

用C#从Word文档中删除重复的节控件和文本内容控件

异步任务导致内存泄漏

将操作从编辑页重定向到带参数的索引页

源代码生成器:CS8795分部方法';Class1.GetS2(字符串)';必须有实现部分,因为它有可访问性修饰符?

如何在mediatr命令中访问HttpContext而不安装弃用的nuget包

WPF动态设置弹出窗口水平偏移

如何使用实体框架核心对字符串_agg使用强制转换为varchar(Max)

c#在后台实现类型化数组

实体框架允许您具有筛选的属性吗?