gpt4 book ai didi

c# - 如何通过 Angularjs 应用程序从浏览器获取 Windows 凭据并在服务级别使用它们?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:01 27 4
gpt4 key购买 nike

我一直在摸索如何解决下面描述的问题。

所以,我工作的公司使用 Visual Studio Team Services(以前是 Visual Studio Online),它集成/连接到我们的 AD,这意味着如果我登录到我的工作站,我可以登录到 Team Services 而无需身份验证我自己,就像 SSO。

我将创建一个通过 Team Services SOAP 和 WebApi 客户端与 Team Services 通信的应用程序,这就是问题所在。我需要一个用户能够与 Team Services 通信并做一些事情(读取数据、创建工作项、创建测试套件等)。我认为说服 IT 部门为此创建用户的可能性很小。由于安全风险,他们将拒绝我的请求。

应用程序架构如下所示:

  • 浏览器:angularjs应用,spa,只调用WebApi服务
  • server:WebApi 服务,负责与 Team Services 通信,并在客户端和 Team Services 之间来回转换数据。
  • 数据库:保存数据供以后分析

我有一个想法,我可以通过某种方式从操作系统获取 Windows 凭据并将其向下推送到使用它与 Team Services 通信的服务器。在 Team Services 中,我们将看到特定用户执行的操作。

问题是,这怎么可能?我发现搜索类似内容的文章总是提到 .Net MVC 应用程序,我需要在其中修改 web.config 以获得凭据。但是,在我的体系结构中,没有在本地计算机上运行的 .Net MVC 应用程序。只有 SPA 在浏览器中运行。

或者我的架构不适合这个目的?我应该重新处理它并使用 MVC 应用程序来获取凭据并使用它们吗?但是,问题仍然存在,我如何通过调用 Team Services 的调用传递凭据?

您知道处理上述案例的博客条目吗?

提前感谢您的帮助!

最佳答案

我认为您对自己的条款有些困惑。 SPA(单页应用程序)具有由服务器传送到调用 .NET WebApi 代码的浏览器的 javascript 代码。为了让浏览器使用 Kerberos/Windows 身份验证,您需要添加

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

到运行 .NET 应用程序的服务器上的 web.config(在 IIS 下)。

从这里... http://www.asp.net/web-api/overview/security/integrated-windows-authentication

“在客户端,集成 Windows 身份验证适用于任何支持协商身份验证方案的浏览器,其中包括大多数主要浏览器。对于 .NET 客户端应用程序,HttpClient 类支持 Windows 身份验证:”

然后浏览器将为您完成剩下的工作,服务器上 .NET 代码中的 HttpContext.CurrentUser 将设置为客户端浏览器的 windows 用户。

关于c# - 如何通过 Angularjs 应用程序从浏览器获取 Windows 凭据并在服务级别使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35557877/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com