问题描述
目前,我无法在MVC控制器中获取身份信息。在本地调试blazor应用程序时没问题,但是当我在IIS上发布该应用程序时,我仅获得执行服务帐户的标识,例如“ MachineName \ ApplicationPoolIdentity”或“ MachineName \ LocalService”(取决于选择的身份)在我的MVC控制器中)。但是,在Blazor页面上,身份验证和授权似乎可以正常工作。
我在IIS站点身份验证设置中启用了“ Windows身份验证”和“匿名身份验证”。
我需要用户身份来执行我们的审计跟踪,该审计跟踪为每个粗糙操作创建了一个条目。
在MVC控制器中,我尝试使用“ this.User.Identity”或“ HttpContext.User.Identity”,这是同一对象。在本地调试时,它显示corect身份(作为呼叫者的本人)。在IIS上部署后,我得到“ MachineName \ ApplicationPoolIdentity”
MVC控制器的外观如下:
[Route("api/[controller]")]
[ApiController]
[Authorize]
public class DatabaseSystemsController : CustomControllerBase
{
// GET: api/DatabaseSystems
[HttpGet("/api/AllDatabaseSystems")]
public async Task<ActionResult<IEnumerable<DatabaseSystem>>> GetAllDatabaseSystems()
{
try
{
var identity = HttpContext.User.Identity
...
return await _context.DatabaseSystems.ToListAsync();
}
catch (Exception)
{
...
}
}
}
我希望有人可以提供帮助。 预先感谢
L。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)