问题标签 [windows-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
482 浏览

asp.net - 如何消除 IIS/ASP.NET 双重握手?

我有一个在公司环境中运行的 .NET 2.0 ClickOnce 应用程序,它设置为通过 Windows 身份验证工作。

因此,用户通过 ClickOnce 下载应用程序,然后它连接到 IIS 服务器并通过 Web 服务调用进行通信。

问题是每次通话都会有两次握手。第一次调用产生 401 并邀请客户进行协商。由于客户端发送了身份验证令牌,因此第二次调用成功。

有没有办法消除这种双重握手?因为它给应用程序的延迟带来了巨大的开销,并使它看起来非常缓慢。

谢谢

0 投票
2 回答
207 浏览

asp.net - 配置错误

配置错误描述:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

解析器错误消息:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。此错误可能是由未在 IIS 中配置为应用程序的虚拟目录引起的。

源错误:

0 投票
1 回答
5859 浏览

asp.net - 从 ASP.NET Web 应用程序联系 ASP.NET Web 服务时出现 401 Unauthorized

我有一个服务器(Windows 2003/IIS 6)。该服务器在 IIS 中有几个不同的“网站”设置。每个站点都在 IIS 中配置有不同的主机标头(端口 80)。此外,每个站点也可以通过指定的端口号访问(没有主机头)。

例如:

MySite1: http ://apps.mysite1.com 或 http://myserver:xxxx

MySite2: http ://something.mysite2.com 或 http://myserver:yyyy

我已经编辑了我的主机文件(它是一台开发机器)以将每个站点的主机头重定向到本地机器(127.0.0.1)。

我在一个 IIS 站点 (mysite1) 中有一个 ASP.NET 2.0 网站,在另一个 IIS 站点 (mysite2) 中有一个 ASP.NET 2.0 Web 服务。该网站使用类似于以下的代码与 Web 服务进行通信:

所有站点都针对 Windows 集成安全性进行了配置,并且 ASP.NET 配置为使用 <identity impersonate="true" /> 进行 Windows 身份验证。安全模型规定,登录到 Web 应用程序的用户应该一直通过 Web 服务进行身份验证(然后再到底层数据库,但这并不一定相关)。

我的工作正常,但是我重建了我的 Web 服务(新方法),现在任何以 401 Unauthorized 消息结尾的 Web 服务调用的结果都无法正常工作。

这听起来确实像一个双跳问题。我认为这与 Web 服务不接受正在传递的凭据以及对要传递的新凭据的挑战有关。只是不确定如何确认这一点。不知道为什么它会挑战 - 我以机器/域管理员身份登录,并且 IE 配置为在 Internet 选项 > 安全选项卡 > 自定义级别 > Intranet 区域中的自动登录中传递凭据。是的,相关站点已添加到我的“Intranet 区域”中。

解决此问题的最佳方法是什么?关于现在可能导致这种情况的任何想法?

蒂亚!

0 投票
4 回答
16713 浏览

sharepoint - 跨多个域的 SharePoint (WSS) 身份验证

首先,一些背景知识:我们有一个基于 WSS 3.0 的 Intranet 站点,它托管在DOMAIN_A.LOCAL中的服务器上,并设置为使用集成 Windows 身份验证来针对DOMAIN_A.LOCAL的 Active Directory 用户帐户对用户进行身份验证。

此设置适用于使用DOMAIN_A.LOCAL的 AD 帐户登录 Windows 的用户,但是当用户尝试从使用不同域(即DOMAIN_B.LOCAL)的AD 帐户登录 Windows 的 PC 访问该站点时,出现以下问题:

  1. 用户必须手动将其凭据输入为DOMAIN_A\UserName而不仅仅是UserName,否则 Internet Explorer 会自动插入DOMAIN_B并导致身份验证失败。

  2. 登录后,如果用户执行需要浏览器将其身份验证传递给客户端应用程序的操作,例如单击文档库中的 Microsoft Office 文档以将其打开以进行编辑,则显示无效凭据(大概DOMAIN_B ) 被自动传递,从而迫使用户再次手动输入他们的DOMAIN_A凭据。

那么我的问题是这样的:

有没有办法在使用集成 Windows 身份验证时实现“默认域”类型的行为(使用基本明文身份验证时可以这样做),以便如果DOMAIN_B上的用户没有在其用户名之前输入域,则DOMAIN_A是为他们自动插入?

当然,我意识到这种部署可能存在致命缺陷,因此我也愿意接受不同实施的建议。

总之,主要问题源于两种不同类型的用户需要访问一个 SharePoint 网站上的相同内容。DOMAIN_A中的用户都有自己的全职工作站,他们在其中以自己的身份登录 Windows。不幸的是, DOMAIN_B中的用户必须使用共享计算机,这些计算机使用在 SharePoint 中没有权限的通用“信息亭”类型帐户登录——因此要求DOMAIN_B用户在访问 SharePoint 中的给定页面时必须按需提供其凭据。我想为DOMAIN_A的“静态”用户保留集成 Windows 身份验证的便利性,同时最大限度地减少“信息亭”用户的手动身份验证量DOMAIN_B必须忍受。

0 投票
2 回答
305 浏览

security - 使用 WinAuth 连接到数据库

在回答我一周前提出的一个问题时,我将数据库引擎更改为只接受 Windows 身份验证而不是 SQL 身份验证。因为我们的代码运行在与数据库连接不同的用户上下文中,所以我们需要指定用户名和密码信息才能连接到数据库。我们如何使用 ConnectionString 来做到这一点?请记住,我们不再使用 SQL 身份验证。

谢谢,

0 投票
2 回答
2514 浏览

asp.net - 在 ASP.NET MVC 中使用 Windows 身份验证时,User.Identity.Name 未返回正确的凭据

我在我的 ASP.NET MVC 应用程序中使用 Windows 身份验证,系统提示我在作为域成员的网络服务器上输入凭据 [我有域凭据并且可以很好地进行身份验证] 但是当我的控制器操作调用“User.Identity.Name”时为了尝试针对当前登录的用户检查数据库值,这是从本地计算机返回 SAM 帐户,而不是从 DOMAIN 中返回 SAM 帐户:

本地计算机用户名(User.Identity.Name 返回):LOCALPC\username

我所期待的(这是我针对 AD 进行身份验证的内容):域\用户名

这给我带来了问题,因为我无法准确地验证仅使用用户名的用户。

我是否遗漏了一些东西,有没有办法返回我目前对网络服务器进行身份验证的内容,而不是客户端计算机上的本地 SAM 帐户?

这很重要的原因是因为并非所有 Intranet 应用程序客户端都将加入域(未加入域但属于具有 AD 帐户的用户的计算机)。

0 投票
1 回答
1487 浏览

sql-server - 网站表单身份验证 -> Sql Server Windows 身份验证

长话短说:作为我正在编写的在线数据库访问系统的一部分,我想使用 SQL 2008 中新的 BLOB 访问功能——这意味着我在登录 SQL Server 时必须使用 Windows 身份验证;然而,由于它的本质,所有这一切的网站前端都使用表单身份验证以及存储在该 SQL 服务器上的成员数据。

如何让 Web 应用程序模拟用户帐户,以便它可以连接到 SQL 服务器,即我不想使用登录网站的用户帐户。(并不是说您可以这样做,因为会员详细信息存储在 SQL 服务器上)

网络服务器和 SQL 服务器位于同一网络上的不同机器上,设置了一个用户帐户仅供网络应用程序使用。

0 投票
2 回答
2245 浏览

sql-server - 来自不受信任域的集成 SQL 服务器身份验证

我真的想从 C#/.NET 应用程序中使用 SQL-server,而不使用 SQL-Server 帐户或将受影响的计算机添加到同一个域或任何域,或者使用与域相同的登录名。

没有办法吗?有人尝试使用 SSPI 的 MONO 实现来做到这一点吗?

0 投票
7 回答
82861 浏览

sql-server - 数据库 + Windows 身份验证 + 用户名/密码?

我一直认为,为了使用带有显式指定凭据的 Windows 身份验证连接到 SQL Server,您必须先登录用户、模拟,然后再连接。

在我看来,这个链接表明,只需在连接字符串中指定“uid=...;pwd=...”,就可以轻松连接到 SQL 服务器。我测试了这种方法只是为了确保它不起作用,并且 - 你瞧 - 它没有。如果那篇博文不在 msdn.com 上,我会认为它是菜鸟谈话,但确实如此。

有谁知道我错过了什么?

EDIT1:许多受访者误解了我的意思。这是我正在谈论的内容的副本/粘贴。它不是集成的 SQL,也不是由 IIS 进行的 ASP.NET 模拟:

0 投票
3 回答
941 浏览

asp.net-mvc - 为什么我的 ASP.NET MVC 应用程序请求 Windows 身份验证?

我一直在构建一个 ASP.NET MVC 应用程序并使用表单身份验证。在我的控制器动作中,我有:

[授权(用户=“我,乔”)]

这一直很好。昨晚当我发布最新的更改并尝试查看我的网站时,它开始弹出一个 Windows 身份验证对话框。我查看了所有代码,无法弄清楚为什么它会更改为 Windows 身份验证。我的 web.config 文件至少 10 天没有更改。如果我从我的开发箱运行代码,它不会这样做......只有当它从我的主机运行时。如果我从我的控制器操作中删除授权行,它就不会发生。

我该如何解决这个问题或如何调试我的解决方案以查看为什么会发生这种情况?

顺便说一句,我的 web.config 说: