?? auth.php
字號:
<?php
class Auth {
var $session = array();
var $sId;
var $fromCWPS = false; //數(shù)據(jù)是否來源于CWPS
function Auth()
{
session_start();
$this->session = &$_SESSION;
}
function init()
{
global $SYS_ENV;
$this->cookie_name_sid = $SYS_ENV['CookiePre'].'sid';
$this->sId = isset($_GET['sId']) ? $_GET['sId'] : (isset($_POST['sId']) ? $_POST['sId'] : $_COOKIE[$this->cookie_name_sid]);
$this->Ip = $GLOBALS['IN']['IP_ADDRESS'];
if(substr($this->sId, 0, 6) == 'CWPS::') {
$this->sId = substr($this->sId, 6);
$this->fromCWPS = true;
}
if(!$this->isLogin()) {
$this->tryLogin($this->sId, $this->Ip);
}
}
function isLogin()
{
if (empty($this->session['UserID'])) {
return false;
} else return true;
}
function ActiveCWPSSession($activeTime)
{
global $SYS_ENV;
if((time() - $this->session['SessionActiveTime']) < $activeTime) return true; //定時$activeTime執(zhí)行ActiveCWPSSession
$oas = new SoapOAS($SYS_ENV['CWPS_Address']); //初始化OAS客戶端
$oas->setTransactionAccessKey($SYS_ENV['TransactionAccessKey']); //設(shè)置CWPS訪問密碼
$oas->doLog = true; //是否對SOAP數(shù)據(jù)包進行記錄
$oas->logFile = "oas.log.".date("Y-m-d").".txt"; //log文件名
$oas->setTransactionID(time()); //設(shè)置事務(wù)消息ID
$Action = "ActiveSession";
$params = array(
"sId"=> $this->sId,
); //傳遞給接口的參數(shù)
$return = $oas->call($Action, $params); //執(zhí)行調(diào)用
if($return === false) { //執(zhí)行發(fā)生錯誤,錯誤處理...
return false;
} else { //執(zhí)行成功,$return包含返回的數(shù)據(jù)
$this->session['SessionActiveTime'] = time();
//print_r($return);
return true;
}
}
function tryLogin($sId, $ip)
{
global $SYS_ENV;
if(empty($sId)) return false;
$oas = new SoapOAS($SYS_ENV['CWPS_Address']); //初始化OAS客戶端
$oas->setTransactionAccessKey($SYS_ENV['TransactionAccessKey']); //設(shè)置CWPS訪問密碼
$oas->doLog = true; //是否對SOAP數(shù)據(jù)包進行記錄
$oas->logFile = "oas.log.".date("Y-m-d").".txt"; //log文件名
$oas->setTransactionID(time()); //設(shè)置事務(wù)消息ID
$Action = "QueryUserSession";
$params = array(
"sId"=> $sId,
"Ip"=> $ip,
); //傳遞給接口的參數(shù)
$return = $oas->call($Action, $params); //執(zhí)行調(diào)用
if($return === false) { //執(zhí)行發(fā)生錯誤,錯誤處理...
return false;
} else { //執(zhí)行成功,$return包含返回的數(shù)據(jù)
$this->session = $return;
$this->session['SessionActiveTime'] = time();
//print_r($return);
return true;
}
}
function login()
{
global $SYS_ENV, $PageInterface;
$this->goCWPS($PageInterface['Login']) ;
}
function logout($referer = "")
{
global $SYS_ENV, $PageInterface;
session_destroy();
$this->goCWPS($PageInterface['Logout'], $referer) ;
}
function isLoginCWPS()
{
global $SYS_ENV, $PageInterface;
$this->goCWPS($PageInterface['IsLogin']) ;
}
function goCWPS($url, $referer='')
{
if(empty($referer)) {
$port = $_SERVER['SERVER_PORT']==80 ? "" : $_SERVER['SERVER_PORT'];
$referer = "http://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'];
}
$pos = strpos($url, '?');
if ($pos === false) {
$url = $url."?&referer=OAS::".urlencode($referer);
} else $url = $url."&referer=OAS::".urlencode($referer);
header("Location: $url");
exit;
}
}
?>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -