首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 視訊監控系列(十):伺服器端進階功能——驗證、畫質設定、字幕疊加、板卡序號(二)

     編輯:關於C語言

1.2 使用者帳密驗證 (Password Verification)

VC++ 官方範例

// OnInitDialog 中註冊回調
MP4_ServerCheckPassword(checkpassWord);

// 委托定義
int CALLBACK checkpassword(char *username, WORD namelen, char *password, WORD passlen)
{
    /* 範例邏輯(註解掉)
    if ((username[0] == '1') && (username[1] == '2') && (username[2] == '3') && (password[0] == 'w'))
        return 0;
    else
        return -1;
    */
    return 0; // 預設全通過
}

C# 實作:委托必須宣告為成員變數

/// 
/// 驗證使用者帳號密碼
/// 
/// 使用者名稱
/// 使用者名稱長度
/// 密碼
/// 密碼長度
/// 0=驗證通過, -1=驗證失敗
public int CheckPassword(string username, ushort namelen, string passWord, ushort passlen)
{
    // 實際驗證邏輯:查資料庫、比對雜湊、檢查權限等
    // 範例:僅允許 admin/123456
    if (username == "admin" && passWord == "123456")
        return 0;
    
    return -1; // 驗證失敗,客戶端將無法取得畫面
}

關鍵注意事項

  1. 委托必須為類別成員變數:CheckPasswordCallback checkPassDelegate;,否則 GC 回收導致回調失效
  2. 回傳值語義:0 = 允許連線/出圖,-1 = 拒絕連線 (客戶端無畫面)
  3. 參數型別對應:VC++ char* + 長度 → C# string + ushort 長度

二、設定畫面擷取畫質

對應 VC++ 範例 Settings 對話框中的畫質下拉選單:

詳細實作請見下一篇(第 3 部分)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved