Asp.net 当应用程序在IIS中运行时,如何从Request.ServerVariables(“LOGON”u USER“获取值)?

Asp.net 当应用程序在IIS中运行时,如何从Request.ServerVariables(“LOGON”u USER“获取值)?,asp.net,Asp.net,我没有使用任何内置的身份验证机制,只是构建一个需要登录的简单intranet站点 但我被要求检索用户当前的windows登录名,并用此信息对其进行身份验证 从我的对话框中读取Request.ServerVariables(“LOGON\u USER”)信息时,一切正常。但当应用程序在我的服务器上使用IIS运行时,此值始终为空 有什么想法吗?为了找出用户是谁,您需要对他们进行身份验证。这正是身份验证的定义 更改web.config以包括: <authentication mode="Wind

我没有使用任何内置的身份验证机制,只是构建一个需要登录的简单intranet站点

但我被要求检索用户当前的windows登录名,并用此信息对其进行身份验证

从我的对话框中读取Request.ServerVariables(“LOGON\u USER”)信息时,一切正常。但当应用程序在我的服务器上使用IIS运行时,此值始终为空


有什么想法吗?

为了找出用户是谁,您需要对他们进行身份验证。这正是身份验证的定义

更改web.config以包括:

<authentication mode="Windows"/>

和:为了更深入

如果您的目的是根据用户的Windows帐户自动限制对网络资源的访问,您可能希望查看使用模拟,这意味着ASP.NET的行为就像它在用户的Windows帐户的上下文中运行一样,与该帐户关联的所有用户权限都会有效地传递给ASP.NET应用程序


顺便说一句,我认为Request.ServerVariables(“LOGON\u USER”)是旧的ASP经典方式。改用HttpContext.Current.User.Identity.UserName。

如果不强制执行
,我不确定是否可以。您不希望他们看到任何登录机制,但仍然能够基于登录对其进行身份验证?如果可能的话,那将是一个安全隐患。