Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET Request.LogonUserIdentity.Name为空_Asp.net - Fatal编程技术网

ASP.NET Request.LogonUserIdentity.Name为空

ASP.NET Request.LogonUserIdentity.Name为空,asp.net,Asp.net,我有一个ASP.NET web表单应用程序,在服务器端我需要知道用户的身份。我不需要模拟用户。我只需要他们的用户名,这样我就可以正确地更新数据库中的一些记录 处理请求时,我有以下代码行: string userName = Request.LogonUserIdentity.Name; if(true == string.IsNullOrEmpty(userName)) { logger.logwarning("missing username"); } else { logger.lo

我有一个ASP.NET web表单应用程序,在服务器端我需要知道用户的身份。我不需要模拟用户。我只需要他们的用户名,这样我就可以正确地更新数据库中的一些记录

处理请求时,我有以下代码行:

string userName = Request.LogonUserIdentity.Name;
if(true == string.IsNullOrEmpty(userName))
{
  logger.logwarning("missing username");
}
else
{
  logger.loginfo("update by {0}", userName);
}
在我的开发和质量保证环境中,这非常有效——我在日志文件中看到用户名,并且所有数据库记录都正确填写了lastModifiedBy字段。然而,当我们进入生产阶段时,用户名是一个空字符串

更新和澄清

我昨天就应该包括这个-

在web.config中,我们有 我们不想模拟用户b/c他们将无法访问后端系统(Microsoft CRM),但服务帐户可以

在IIS内部,我们关闭了匿名访问,打开了Windows集成安全。应用程序在其自己的虚拟目录中运行,并为其分配了应用程序和应用程序池

总的来说,这些东西看起来和我们的暂存服务器一样。我知道通过一篇关于堆栈溢出的短文来诊断这一问题是一个难题,但我现在正抓住STAW。我知道这是一个很蹩脚的东西,比如我忘了点击复选框,或者是一个通常无关紧要的小设置


无论如何,我会听取任何建议。

您是否关闭了对web应用程序的匿名访问?

确保您的web应用程序/虚拟目录在IIS中的设置正确

配置Windows身份验证的步骤

启动Internet信息服务(IIS)。 右键单击应用程序的虚拟目录,然后单击属性。 单击目录安全选项卡。 在匿名访问和身份验证控制下,单击编辑。 确保未选中“匿名访问”复选框,并且“集成Windows身份验证”是唯一选中的复选框

在应用程序的Web.config文件或计算机级别的Web.config文件中,确保身份验证模式设置为Windows,如下所示

<system.web><authentication mode="windows" /><system.web>


很遗憾,是的。但我会让管理员再看一下。我在一个高度安全的环境中工作,不允许我靠近生产服务器。我必须和服务器管理员一起工作。我们真的很清楚这一点。你和我都知道,为了让我的东西正常工作,你必须关闭对该网站的匿名访问——这是以这种方式记录的,在我们调试这个问题时,我通过电子邮件发送了十亿次。猜猜我们发现了什么:匿名访问已打开!我正在使用truckdriving。匿名访问已关闭,身份验证已在web.config文件中设置为windows。