0

JayData + WCF/RIA サービスを使用してアプリケーションを作成したいのですが、サーバー側にビジネス ロジックを配置するために、クライアント側 (Javascript) エンティティの変更を検出する必要があります。

例: 顧客の名前を変更した場合、サーバーで更新する前に検証を行いたいとします。

とにかくこのようなことをすることはありますか?

    [Insert]
    public void InsertCustomer(Customer customer)
    {
        // Some validation before insert
    }

    [Update]
    public void UpdateCustomer(Customer customer)
    {
        // Some validation before update
    }

    [Delete]
    public void DeleteCustomer(Customer customer)
    {
        // Some validation before delete
    }
4

2 に答える 2

0

これに安全に対処するには、(JayData ではなく) サーバー側でそれを行う必要があり、.NET の方法または独自に認証を実装する必要があります。次に、onupdate サーバー側メソッドをチェックして、次のようにします。

C# コード:

[Insert]
public void InsertCustomer(Customer customer) {
    if (! customer.LoginName == Thread.CurrentPrincipal.Identity.Name ) {
      throw new SomeValidtionException()
    }
}

これはあなたが必要とするものですか?

于 2012-06-12T07:08:44.917 に答える
0

たぶんこれはあなたが必要としているものではないかもしれませんが、私は一撃を与えます: フィールドにアタッチされたカスタムバリデーター関数を使用して、クライアントのフィールドを検証できます。JaySvcUtil.exe でデータ コンテキストをインポートした後、エンティティを変更し、customValidator でフィールドを装飾します。

$data.Entity.extend("UserModel", {
    Id: { type: "int", key: true, computed: true },
    UserName: { type: "string", required: true,
               customValidator: function (v) { return !v || v.length == 3 }, 
               errorMessage: "custom error, length: 3" }
});

現在のバージョンでは、エンティティ レベルの検証関数はありません。そうしたい場合は、JayData.org/backlogs でユーザー ストーリーを送信するか、github.com/ jaydata / jaydataで問題を送信してください。

于 2012-06-11T12:48:14.210 に答える