一种在Windows环境中从HTTP请求中获取用户名的Get方式!

注意:此实现是从Java翻译过来的,链接如下:https://www.rgagnon.com/javadetails/java-0441.html

特点

现在,当您使用LDAP时,您可以从HTTP请求中获取用户信息,之后您就可以查询LDAP以从Dart中获取更多用户信息!

安装

在您的pubspec.yaml文件中添加ntlm request

dependencies:
  ntlm_request: 

在将要使用的文件中导入ntlm request

import 'package:ntlm_request/ntlm_request.dart';

入门

只需在路由中创建一个ntlm request实例即可开始使用。请注意,此方法的返回类型是一个对象。我决定不直接返回Response对象,以避免在这里修复另一个包。这样您就可以使用任何您想要的http包,只需将结果插入您的response statusCode和headers即可!

    // inside your http route....
      RetType ret = ntlm.proccessRequest(req.headers);

      if (ret.statusCode != 200) {
        return Response(ret.statusCode, headers: ret.headers);
      }
      if (ret.statusCode == 200 && ret.userName!.isNotEmpty) {
        return Response.ok(ret.userName);
      }

用法

  final appRouter = Router();

  appRouter.get('/api/getUserDetails', (Request req) async {
    NtlmRequest ntlm = NtlmRequest();
    RetType ret;
    try {
      ret = ntlm.proccessRequest(req.headers);

      if (ret.statusCode != 200) {
        return Response(ret.statusCode, headers: ret.headers);
      }
      if (ret.statusCode == 200 && ret.userName!.isNotEmpty) {
        return Response.ok(ret.userName);
      }
    } catch (e) {
      log(e.toString());
    }
    return Response(401,
        headers: {'error': 'ntlm user not identified in request header!'});
  });

附加信息

请给予一些❤️并点亮仓库以支持该项目

GitHub

查看 Github