0

ログイン資格情報に基づいてデータを追加する方法について、いくつかの調査を行ってきました。シナリオの例として、ユーザーがアプリケーションにログインし、そのログインに基づいて、タイムシート アプリケーションのように、その日に行った時間を追加するとします。

  • ログインしているユーザーに、自分以外の名前を表示させたくありません。
  • ブラウズ画面には、全員ではなく、送信した回数だけが表示されます。

(_customnameDataService.cs )で挿入呼び出しメソッドを使用する場合、以下のようにテーブル内のフィールドを関連付けることでユーザー名を追加できます。

entity.Username =  Application.User.Name

そのため、これが可能であれば、ログイン時に JavaScript でこれを呼び出す方法が必要です。そのため、ヘルプやポインターは大きな助けになります。DataItem を追加してユーザー名を表示することが最も望ましいでしょう。(編集レンダー コードを使用) 次に、階層を介して渡して、ログインしているユーザーに関連付けられた情報のみを表示できます。

4

1 に答える 1

0

上記の質問を達成するには、次の手順に従います。

  1. Google GetUserName.ashx でこのファイルのコードを取得し、Lightswitch HTML プロジェクトに追加します。
  2. 以下の関数を JavaScript ファイルにコピーします (私の場合は、ユーザーの参照画面)。
function CallGetUserName(operation) {
    $.ajax({
        type: 'post',
        data: {},
        url: '../web/GetUserName.ashx',
        success: operation.code(function AjaxSuccess(AjaxResult) {
            operation.complete(AjaxResult);
        })
    });
}
  1. Lightswitch アプリケーションにログインしてアクセスできるユーザーについては、ユーザー情報をどこかに保存する必要があります。私の場合は「tbl_Users」です。このテーブルには、 usernameという行があります。以下のコードを使用すると、管理者または階層の上位の人物がすべてのユーザーにアクセスできるようになり、表で参照されている特定のユーザーが自分自身にアクセスできるようになります。

myapp.BrowseUsers.username_postRender = 関数 (要素, contentItem) {

msls.promiseOperation(CallGetUserName).then(function PromiseSuccess(PromiseResult) {

    if (PromiseResult == 'TestUser' || PromiseResult == 'administrator') {

    } else {
        contentItem.value = PromiseResult;
    }

});

};

実際に何が起こっているのですか?

関数は GetUserName.ashx ファイルを呼び出し、現在ログインしているユーザーを取得します。 (自動的に作成されるaspnet_Usersテーブルから) 外部キーを使用してテーブル ( tbl_Users ) とaspnet_Usersを関連付けました。

デバッグ環境またはリリース環境で、データ項目 (文字列) を追加してこの情報を表示すると、(" TestUser ")が返されます。

myapp.BrowseUsers.displayUsername_postRender = 関数 (要素, contentItem) {

msls.promiseOperation(CallGetUserName).then(function PromiseSuccess(PromiseResult) 
    {
       element.innerText = PromiseResult;
    }); };
于 2015-02-16T09:30:19.973 に答える