【问题标题】:LDAP Query originating from client-side "onload"源自客户端“onload”的 LDAP 查询
【发布时间】:2017-03-28 14:35:16
【问题描述】:

我已经问过之前的问题,但我认为我对先入为主的观念太过分了,我排除了其他选择。我要重新开始:

我有使用 HTML 和 JavaScript 开发和维护的工具。我想做的是自动收集用户数据。用户目前正在填写他们的信息,我们将它们存储在 cookie 中 6 个月。但是,如果我可以让他们跳过手动输入此信息的步骤,那将节省一点时间。

如果我要使用服务器端的东西,我将使用带有 IIS 8.5 的 Microsoft Web Server 2012。

我想知道的是:就语言而言,最好的方法是什么?

最好的方法是客户端 AJAX 调用 ASP.Net 页面,将用户数据写回 JSON 格式?我应该尝试经过身份验证的查询还是未经身份验证的查询?我迷路了。

我需要建议和一些关于从哪里开始以及如何开始/我需要学习什么的指导。

更新:需要明确的是,我正在寻找一种在我现有代码之外的解决方案。我可以从外部访问的东西(例如 AJAX 想到)并让它返回(AD 数据点指示器):givenName、sn、displayName、telephoneNumber、title。

【问题讨论】:

  • 您正试图让用户从客户端使用他们的 LDAP 凭据登录?
  • 也许吧?我应该声明我不是服务器管理员,也不是我曾经是...所以我是菜鸟。我刚刚阅读了this article,了解如何收集用户身份验证并将其传递给 LDAP。我正在使用的工具目前包含在 SharePoint 2010 中,并且很快将迁移到 SP2016。我知道如何传递用户的用户名/密码的唯一方法是在查询字符串中......这是不安全的......所以我想尽可能避免这种情况。

标签: javascript php html .net active-directory


【解决方案1】:

这有多个层次。我为了在客户端和服务器之间安全地传递数据,需要使用 HTTPS。您可以从多个网站购买证书,但为了开发,让我们创建一个自签名证书。在 IIS 中,转到 server>Server Certificates>Create Self-Signed Certificate...,输入名称并单击 OK。

现在我们需要使用该证书。转到站点>添加网站...,在绑定部分中为其指定站点名称、物理路径,将类型设置为 https,然后选择我们在 SSL 证书中创建的证书。点击确定。

如果您没有 Visual Studio,请从 https://www.visualstudio.com/vs/visual-studio-express/ 获取 express 版本。安装后,打开 Visual Studio。转到文件>新建网站...,选择 Visual C#>ASP.NET 网站,然后单击确定。

在解决方案资源管理器中,展开帐户并双击 Login.aspx。在主面板中,单击拆分以查看 HTML 及其呈现方式。单击登录按钮。在“属性”面板中,单击闪电以执行操作,然后双击“单击”选项。

在这里,我们将使用 DirectoryServices,它需要在您的项目中被引用。右键单击解决方案资源管理器中的项目,选择添加引用...。在 .NET 选项卡中,选择 System.DirectoryServices 和 System.DirectoryServices.AccountManagement,然后单击确定。现在在 Account/Login.aspx.cs 中的 LoginButton_Click 输入:

bool validUser;
    PrincipalContext ctx  = new PrincipalContext(ContextType.Domain);
    validUser = ctx.ValidateCredentials(this.LoginUser.UserName, this.LoginUser.Password);
    if (validUser) {
        // Do you stuff here.
    }

您现在拥有一个非常基本的启用 LDAP 的网站。

【讨论】:

  • 如果我没听错的话,你是在收集用户访问此页面时的数据吗?............如果是这样,那我就不能用这个了解决方案。我正在寻找一种可以从外部访问的解决方案(例如 AJAX),它将在服务器端运行查询,然后将我本可以发送回客户端的数据吐回。我的原因?如果我做了你所说的,我必须将我所有的 HTML 文件更改为 .ASPX 文件。我就是做不到。
  • .NET Web 应用程序不运行客户端。 IIS 服务器上有一个编译好的文件,.aspx 文件作为模板呈现给用户。为您生成了 AJAX 代码来处理视图状态等。当用户点击登录按钮时,会有一个带有用户名/密码的 POST 到服务器,并在那里处理会话信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 2013-06-01
  • 2013-02-03
  • 2020-12-18
  • 2011-08-20
相关资源
最近更新 更多