Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » MobiLink - 入门 » MobiLink 教程 » 教程:使用 .NET 和 Java 进行自定义验证

 

第 1 课:创建用于自定义验证的 Java 或 .NET 类(服务器端)

在本课中,您将编译用于自定义验证的包含 Java 或 .NET 逻辑的类。

面向 .NET 的 MobiLink 服务器 API

要执行 .NET 同步逻辑,MobiLink 服务器必须能够访问 iAnywhere.MobiLink.Script.dll 中的类。iAnywhere.MobiLink.Script.dll 包含要在 .NET 方法中使用的 MobiLink .NET 服务器 API 类的存储库。编译 .NET 类时,将引用 iAnywhere.MobiLink.Script.dll

面向 Java 的 MobiLink 服务器 API

要执行 Java 同步逻辑,MobiLink 服务器必须能够访问 mlscript.jar 中的类。mlscript.jar 包含要在 Java 方法中使用的 MobiLink Java 服务器 API 类的存储库。编译 Java 类时,将引用 mlscript.jar

♦  创建用于自定义验证的 Java 或 .NET 类
  1. 使用 Java 或 .NET 创建名为 MobiLinkAuth 的类。

    MobiLinkAuth 类包括用于 authenticate_user 同步事件的 authenticateUser 方法。authenticate_user 事件可为用户和口令提供参数。在 authentication_status inout 参数中返回验证结果。

    对于 Java,键入以下语句:

    import ianywhere.ml.script.*;
    
    public class MobiLinkAuth
    {
    
     public void authenticateUser (
      ianywhere.ml.script.InOutInteger authentication_status,
      String user,
      String pwd,
      String newPwd )
     {
       // to do...
    
     }
    
    }

    对于 .NET,键入以下语句:

    using iAnywhere.MobiLink.Script;
    
    public class MobiLinkAuth
    {
      public void authenticateUser  (
        ref int authentication_status,
        string user,
        string pwd,
        string newPwd)
      { 
        
       // to do...
    
      }
    }
  2. 编写 authenticateUser 方法。

    本教程说明一个非常简单的自定义用户验证的情况。如果用户名以 "ML" 开头,则验证成功。

    注意

    您将在第 2 课:为 authenticate_user 事件注册 Java 或 .NET 脚本内注册 authenticate_user 同步事件的 authenticateUser 方法。

    对于 Java,键入以下语句:

    public void authenticateUser (
     ianywhere.ml.script.InOutInteger authentication_status,
     String user,
     String pwd,
     String newPwd ) {
    
    if (user.substring(0,2).equals("ML")) {
            // success: an auth status code of 1000
            authentication_status.setValue(1000);
        } else {
            // fail: an authentication_status code of 4000
            authentication_status.setValue(4000);
        }
    }

    对于 .NET,键入以下语句:

    public void authenticateUser(
     ref int authentication_status,
     string user,
     string pwd,
     string newPwd ) {
    
        if(user.Substring(0,2)=="ML") {
            // success: an auth status code of 1000
            authentication_status = 1000;
        } else { 
            // fail: and authentication_status code of 4000
            authentication_status = 4000;
        }
    }
  3. 编译 MobiLinkAuth 类。

    • 对于 Java,在 c:\mlauth 中将文件保存为 MobiLinkAuth.java。浏览至 c:\mlauth。要编译文件,请运行以下命令:

      javac MobiLinkAuth.java -classpath "install-dir\java\mlscript.jar"

      将生成 MobiLinkAuth.class 文件。

    • 对于 .NET,在 c:\mlauth 中将文件保存为 MobiLinkAuth.cs

    • 在命令提示符下,转到 c:\mlauth。要编译文件,请运行以下命令:

      csc /out:c:\mlauth\MobiLinkAuth.dll /target:library /reference:"%SQLANY11%\Assembly\v2\iAnywhere.MobiLink.Script.dll" MobiLinkAuth.cs

      将生成 MobiLinkAuth.dll 程序集。

进一步阅读

有关 authenticate_user 事件(包括 authentication_status 返回代码表)的详细信息,请参见authenticate_user 连接事件

有关使用 Java 或 .NET 执行自定义验证的详细信息,请参见Java 和 .NET 用户验证

有关 Java 自定义验证的详细示例,请参见Java 同步示例

有关 .NET 自定义验证的详细示例,请参见.NET 同步示例