2009-06-15 23 views
0

ここでC++のnoobは、Javaサーブレットを使用してWindowsユーザーを認証する方法を提供しています。ここでJNI LogonUserを使用してユーザーを認証するには?

は、私は、ユーザーのユーザー名、ドメイン、およびパスワードを使用して、私のJavaサーブレットから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 

私は必要なものを含めていないと仮定しています。どんな助けでも大歓迎です。

答えて

0

コンパイラがLogonUserを見つけられなかったため、Windowsヘッダーがないことが示唆されました。インクルードwindows.h

また、一般的なウィンドウのハンドルタイプはHANDLEのスペルです。

詳細はthe LogonUser docsを参照してください。

関連する問題