上記の質問を達成するには、次の手順に従います。
- Google GetUserName.ashx でこのファイルのコードを取得し、Lightswitch HTML プロジェクトに追加します。
- 以下の関数を JavaScript ファイルにコピーします (私の場合は、ユーザーの参照画面)。
function CallGetUserName(operation) {
$.ajax({
type: 'post',
data: {},
url: '../web/GetUserName.ashx',
success: operation.code(function AjaxSuccess(AjaxResult) {
operation.complete(AjaxResult);
})
});
}
- 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;
}); };