6

我的标题中有一个非常简单的部分视图,名为 AccountInfoPanel。它只有一行:

Welcome: @HttpContext.Current.User.Identity.Name

在我的 Web.Config 我有

<authentication mode="Windows" />

但身份名称始终为空。如果我通过 VS 2012 进行调试,并中断索引操作,我发现它是空的。

如果我通过启用 Windows 身份验证并禁用匿名身份验证的 IIS 运行它,我会遇到挑战。所以我尝试插入我的帐户或 test1 和 test2 帐户。它回来说:

HTTP 错误 401.1 - 未经授权 您无权使用您提供的凭据查看此目录或页面。

我还尝试将 Impersonation 设置为 true 并从挑战中获得相同的响应。有谁知道如何设置这个?

如果所有设置都必须在 IIS 中完成,您如何在 Visual Studio 中调试代码?

另一个问题。我的老板似乎认为您甚至不需要登录框。IE 只会知道你是谁。您可以使用不同的帐户在 IE 中“运行”。

4

4 回答 4

8

检查我的清单上可能存在的问题之一

http://netpl.blogspot.com/2012/06/iis-75-integrated-security-with-no.html

简而言之:

首先,确保为站点关闭匿名身份验证:

其次,在内部资源管理器中启用集成安全性(选项/高级并选中“启用集成 Windows 身份验证”选项)。

第三,将您的网站添加到本地 Intranet 区域,并在选项/安全设置/本地 Intranet/自定义级别下至少选择“仅在 Intranet 区域自动登录”选项)。

第四,确保用户和应用服务器在同一个域中。

于 2013-08-16T14:52:56.360 回答
5

要解决此问题,您必须启用 Windows 身份验证功能。请按照以下步骤操作:

- 单击开始,然后单击控制面板。打开程序组。- 在程序和 - 功能下,单击打开或关闭 Windows 功能。- 展开标有 Internet 信息服务的项目。- 展开标有万维网服务的项目。-展开项目安全性->确保选择Windows身份验证

您还需要从 IIS 禁用匿名身份验证,如下所示: - 单击 IIS 中的应用程序 - 双击 IIS 组下的身份验证 - 单击匿名身份验证 - 单击操作下右侧的禁用。希望这可以帮助

于 2013-12-05T12:22:27.803 回答
1

Visual Studio 安装 IIS Express 来为 Web 应用程序提供服务,因此您必须将其配置为使用 Windows 身份验证。

IIS Express 的配置文件通常在这里(更多信息:在哪里找到 IIS Express 配置/元数据库文件?):

%userprofile%\documents\iisexpress\config\applicationhost.config

禁用匿名身份验证(默认启用):

<anonymousAuthentication enabled="false" userName="" />

启用 Windows 身份验证(默认禁用):

<windowsAuthentication enabled="true">
   <providers>
     <add value="Negotiate" />
     <add value="NTLM" />
   </providers>
</windowsAuthentication>
于 2016-12-20T09:54:16.480 回答
0

我知道这是一个老问题,但由于没有回答,也许有人可以使用我的提示。我一直在为这个问题苦苦挣扎一段时间,最后,我发现需要安装 URL 授权才能使其正常工作。

导航到 Windows 功能并安装以下功能:

Web 服务器 (IIS) -> Web 服务器 -> 安全性 -> URL 授权

为了以防万一,我还重新启动了 IIS,但我不确定是否需要它。

于 2020-07-21T16:30:59.507 回答