ホームページ > バックエンド開発 > PHPチュートリアル > [オリジナル] PHP を使用したエンタープライズ Wifi ネットワーク Web 認証システムの開発 (ソース コード付き)

[オリジナル] PHP を使用したエンタープライズ Wifi ネットワーク Web 認証システムの開発 (ソース コード付き)

WBOY
リリース: 2016-06-23 14:27:18
オリジナル
1473 人が閲覧しました

この投稿の最終編集者は PhpNewnew 2012-06-26 16:53:45 です

このケースは、顧客の協力ユニット用に開発されたワイヤレス ネットワーク Web ページ認証システムです。
このシステムは、Web ベースの Windows Active Directory ユーザー認証 (ドメイン ユーザー認証) とデータベース ユーザー認証を実装し、Wiwiz Auth API を呼び出して Web 認証を実装します。

無線ネットワークはお客様の既存環境であり、スイッチと各フロアの無線ルーターは以前はWPAで接続していましたが、現在はWebページ認証方式に変更されています。
ネットワーク構造が若干変更され、Web 認証ゲートウェイは Wiwiz 仮想マシンを使用します。
認証ページ プログラムは PHP + MySQL を使用し、Wiwiz Auth API インターフェイスを呼び出します。

この会社には何百人もの従業員がおり、ネットワークの使用に関して厳格な規則があります。ほとんどの従業員はイントラネットにのみアクセスでき、少数の従業員は外部ネットワーク (顧客の OA システムに登録されている) を使用する権限を持っています。
MySQLデータベースはお客様のOAシステムのデータベースです。

外部ネットワークの使用許可を持つ従業員は、会社の Windows ドメイン アカウントまたは OA システム アカウントを使用してログインおよび認証できます。
重要な顧客が訪問したとき、受付スタッフはプログラムの背景を通じて認証コードを申請することもできます。

認証ページの効果については、下の図を参照してください (顧客のロゴと名前は非表示になっています):





回复讨论(解决方案)

以下附上源代:

index.php

=========================== ===============

//************************** **************************
// 受信パラメータを取得します
//*************** **************************************

$pTokencode = $_REQUEST["トークンコード"];    // 受信パラメータ 「トークンコード」
$pSrvurl = $_REQUEST["srvurl"];        // 受信パラメータ "srvurl"

session_start();
if($pTokencode != null)
$_SESSION['tokencode'] = $pTokencode;
if($pSrvurl != null)
$_SESSION['srvurl'] = $pSrvurl;
?>









Wifi ポータル

function onLogin1() {

if(document.getElementById("AuthType0").checked == false && document.getElementById("AuthType1").checked == false) {
alert("请选)择「OA系使用」 「登録」または「使用ドメイン番号登録」。");
false を返します。        
}

if(document.getElementById("agree1").checked == false) {
alert("认证前您要阅读并认同公司《计算机及网络使用》管理規定》。");
false を返します。
}

trueを返します。
}

function onLogin2() {
if(document.getElementById("agree2").checked == false) {
alert("认证前您要阅读并认同《访客使用网络》协议》。");
false を返します。
}

trueを返します。
}











XXX公司WiFi认证系统






本公司、子公司及び合作单位员工请使用OA系统账户又は域账户认证


(インターネット使用を制限する员工)



访客请授使用权码进行认证







<テーブル幅="760">







员工道
























































 

工号:



秘密コード:



 

所在地フィールド:






分野账户名:



秘密コード:








访客通道




























ネットワークにアクセスするには、受付担当者またはアカウント マネージャーに連絡して認証コードをリクエストしてください



 客请は許可权码を使用して认证を実行します




授权码:



& gt; &
== =======================================

auth.php

============================================

session_start();

$AD_HOST = "XXXXXX:389"; // Active Directory サーバー

$userkey = "XXXXXX"; // Wiwiz ユーザー キー

if( isset($_POST['login1'])) {
if($_POST['AuthType'] == '0' ) { //スタッフ チャネル - ログインと認証に OA システム アカウントを使用します
$StaffId = $ _Post ['Staffid']; $ PSWD($ PSWD '') cnt FROM usermaster where Staffid ='".mysql_real_escape_string($StaffId) ."' および pswd='".mysql_real_escape_string($Pswd) ."'", $db); cnt");

mysql_close($db);
if($cnt <> '0')
$loginSuccess = true;

} else if($_POST['AuthType'] == '1' ) { //従業員チャネル - ドメイン アカウントを使用してログインしますそして認証します
$DomainUser = $_POST['DomainUser']
$DomainPswd = $_Pswd['DomainPswd']
if($DomainUser == '')
die("ドメイン アカウント名を入力してください! " );
if($DomainPswd == '')
die("ドメイン アカウントのパスワードを入力してください!" );
if($Domain == '')
die("ドメインを選択してください!" ); $ conn = ldap_connect($AD_HOST) または die("接続に失敗しました!" );

if($conn){
3);
ldap_set_option ($conn, LDAP_OPT_REFERRALS, 0) // LDAP サーバーへのバインド
$ BD = ldap_bind ($ CONN, $ dainuser.'@' $ daedswd, $domainpswd); // OR DIE ("ドメイン アカウントまたはパスワードのエラー。") } else{
echo "接続に失敗しました!";
$AuthCode = $_POST[ 'AuthCode'];

if($AuthCode == '')
die("認証コードを入力してください!" );

$db = mysql_connect("localhost", "root") または die ("OA システム接続例外! ");

mysql_select_db("oadb",$db);
$result = mysql_query("SELECT count(id) as cnt FROM authcode where code='". mysql_real_escape_string($AuthCode) . "'", $ db);

$cnt = mysql_result($result, 0, "cnt");

if($cnt <> '0');


//
// 必要なことを行います
// 例: ユーザーを確認します
// ......
//

if($loginSuccess == false) {

echo "認証に失敗しました! "; // ユーザーのログインが失敗した場合は、エラー メッセージを表示します

} else {

//***************************** **********************
// ステップ 2. Wiwiz Auth API を呼び出して事前認証を実行します
// 重要: これはサーバー側で実行してください ( ASP、C#、JSP/サーブレット、PHP ...),
// ただし、クライアント サイズ (html/javascript) ではこれを行わないでください
// **************** ************************************************* *************************** ********************** *******************

// パラメータ "action" : REQUIRED!
// ユーザーを認証するには、「1」に設定します
// に設定しますユーザーをブロックするには 0"
$action = "1";

// parameter "tokencode": REQUIRED!
// 受信パラメータと同じに設定
$tokencode = $_SESSION['tokencode'];

//パラメータ "srvurl": 必須!
// 受信パラメータと同じに設定します
$srvurl= $_SE SSION['srvurl'];

// パラメータ "endtime" : オプション
// 形式: yyyy-mm-dd hh :MM:ss 例: 2012-05-31 21:39:00
// このパラメータを設定して、ユーザーのインターネット接続を閉じる時間を設定します
// 注: 値は URL エンコードされている必要があります
// $endtime = urlencode('2012-05-31 21:39:00');    $endtime = '';    

// パラメータ「postauth」: オプション
// 例: http://www.YourDomain.com
// 認証後に指定された URL にリダイレクトするようにこのパラメータを設定します。
// 注: 値は URL エンコードする必要があります。  
//$postauth = urlencode("http://www.wiwiz.com");
$postauth = '';    

$parameters = 「?wiwiz_auth_api=1&ver=1.0」。 // パラメータ「wiwiz_auth_api」と「ver」。 固定値
"&tokencode=。 $トークンコード 。    // パラメータ「トークンコード」。 上記を参照してください
「&userkey=」。 $userkey 。        // パラメータ「ユーザーキー」。 独自のユーザー キーを設定します
"&action=。 $アクション 。        // パラメータ「アクション」。 上記を参照してください
「&endtime=」。 $endtime 。        // パラメータ「終了時間」。 上記を参照してください
「&postauth=」。 $postauth;     // パラメータ「認証後」。 上記を参照してください

$verifycode = file_get_contents($srvurl . $parameters);

if (strpos ($verifycode, "ERR") === 0) {
// エラーがある場合は、エラーコードを表示します
echo 「エラー: 」。 $verifycode;

} else {
// それでは、 それでは。 ステップ 3 を実行します。

//***************************************** **********
// ステップ 3. Wiwiz Auth API を呼び出して認証を完了します
//*********************** ******************************
$redirectUrl = $srvurl。        // 受信パラメータ「srvurl」の値をリダイレクト アドレスとして使用します
「?wiwiz_auth_api_login=1」。    // パラメータ "wiwiz_auth_api_login"
"&tokencode=". $トークンコード 。    // パラメータ「トークンコード」、受信パラメータと同じに設定します
「&verifycode=」。 $verifyコード;    // パラメータ「verifycode」、受信パラメータと同じに設定
ob_start();
header("場所: ". $redirectUrl);    // 最後に、リダイレクトを実行します
ob_flush();

// echo "<script>location.href="". $redirectUrl .""</script>";

}

}

?>

==========================================

コピーアンドペースト それともオリジナル?共有しますか?

コピーして貼り付けますか? それともオリジナルの共有

この投稿の最終編集者は 2012-06-26 16:51:57 です

わかりました、サオ ニアン... この投稿を終了しないでください。結び目の準備ができました


3 階の返信からの引用:

コピーして貼り付けますか?

オリジナルの共有
元の投稿者に感謝します、ハハハ

まずその話はやめておきます

ファイルを見てみましょう~~

LZNX~ ~

まず Mysql にアクセスし、次に LDAP にアクセスします。これは Wifi と何の関係がありますか?

Wifi ネットワークの Web 認証システム...

Wi-Fi とは関係ないとも言えます... Wi-Fi は主に Web 認証システムを解決するための環境です... ははは

まず Mysql にアクセスしてから、 Wifi に関連する LDAP にアクセスします。どのような関係がありますか?

奪ってください! !

オリジナルポスターを崇拝してください

持ち帰りましょう! !


bu cuo

OK!このコードはよく書かれていますこのコードはよく書かれていますが、IE9 ではいくつか問題があるように感じます。

悪くないよ!

悪くないよ!

蘭州少冰。

オリジナリティをありがとう、私たちはオリジナリティをとても必要としています。

データベースはどのように設計されていますか?

実はこれが核心です

なんと

シェアしてくれてありがとう


シェアしてくれてありがとう

崇拝します

シェアしてくれてありがとう!

共有してくれてありがとう、理論を学びましょう

?? 共有... とてもエキサイティングです

??php+ldap? 何ができるでしょうか?

共有してくれてありがとう

見てください~!シェアしていただきありがとうございます ·

Wifi ネットワーク Web 認証システム…
Wi-Fi とは関係ないとも言えます… Wi-Fi は主に Web 認証システムを解決するための環境です… ハハハ

10 階の回答からの引用:

まず MySQL にアクセスし、次に LDAP にアクセスします。これは Wifi と何の関係がありますか?

最近wifiしか見ませんでした


これは

ldap何ですか?元の投稿者のニーズもよくわかりません、恥ずかしいです。 ! ! ! ! ! ! ! !

さて

小規模企業はワイヤレス ルーティング MAC フィルタリングを使用できます

このシステムの操作プロセスは何ですか。認定後は何ができるのですか?一般従業員や訪問者は認証後にどのような権限を取得できますか?原則は php+ldap メカニズムに基づいていますか、それとも何か他のものですか?

ごめんなさい、初心者の私には意味が全く分かりません!この側面の詳細を理解している専門家が、これらの比較的難しく抽象的な概念をよりよく理解できるように説明してくれることを願っています。ありがとう!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート