一种在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!'});
});
附加信息
请给予一些❤️并点亮仓库以支持该项目