gpt4 book ai didi

c++ - JNI 调用以使用 LogonUser 对用户进行身份验证?

转载 作者:太空宇宙 更新时间:2023-11-04 14:28:37 24 4
gpt4 key购买 nike

C++ 新手想知道如何通过 Java servlet 对 Windows 用户进行身份验证。

这是我用用户的用户名域和密码从我的 java servlet 接收 JNI 调用的代码:

#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <stdlib.h>

#include "Validate.h"

JNIEXPORT jstring JNICALL Java_Validate_takeInfo(JNIEnv *env, jobject obj, jstring domain, jstring id, jstring idca, jstring password)
{
const char *nt_domain;
const char *nt_id;
const char *nt_idca;
const char *nt_password;

nt_domain = env->GetStringUTFChars(domain, NULL);
nt_id = env->GetStringUTFChars(id, NULL);
nt_idca= env->GetStringUTFChars(idca, NULL);
nt_password = env->GetStringUTFChars(password, NULL);

handle hToken = 0;
char *otherString;
otherString = LogonUser(nt_id, nt_domain, nt_password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &hToken );

jstring newString = env->NewStringUTF((const char*)otherString);
return newString;
}

我在尝试编译时遇到这些错误:

D:\JNI\Validate.cpp(21) : error C2065: 'handle' : undeclared identifier
D:\JNI\Validate.cpp(21) : error C2146: syntax error : missing ';' before
ier 'hToken'
D:\JNI\Validate.cpp(21) : error C2065: 'hToken' : undeclared identifier
D:\JNI\Validate.cpp(24) : error C2065: 'LOGON32_LOGON_NETWORK' : undeclar
tifier
D:\JNI\Validate.cpp(24) : error C2065: 'LOGON32_PROVIDER_DEFAULT' : undec
dentifier
D:\JNI\Validate.cpp(24) : error C3861: 'LogonUser': identifier not found

我假设我没有包括我需要的东西。非常感谢任何帮助。

最佳答案

您的编译器找不到 LogonUser 表明您缺少 Windows header 。包含windows.h

此外,通用窗口句柄类型拼写为 HANDLE,全部大写。

参见 the LogonUser docs了解更多详情。

关于c++ - JNI 调用以使用 LogonUser 对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/997018/

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