【发布时间】:2014-05-19 19:46:48
【问题描述】:
我想根据当前用户是管理员还是用户打开一个新窗口。在用户按下 F1 键后,我希望系统检查当前的 asp.net 用户角色。
我以前从来没有做过这种事情,这就是我能想到的。我无法将布尔值返回给 ajax 调用。
AJAX 调用:
$(document).keyup(function (e) {
if (e.which == 112) {
$.ajax({
type: "POST",
url: "/check/role.aspx",
data: {},
dataType: "json",
success: function () {
if (role == true) {
window.open(url, "popupWindow", "width=600,height=600,scrollbars=yes");
}
}
});
};
});
ASPX 页面:
<%@ Page Language="VB" %>
<script runat="server">
Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim CurrentUser As MembershipUser = Membership.GetUser()
If (Roles.IsUserInRole(CurrentUser.UserName, "Admin")) Then
role = true
'return true that user is an admin and can open popup
End If
End Sub
</script>
【问题讨论】:
-
您确定需要 AJAX 来完成此任务吗?好像有点矫枉过正。只需使用一些
<%内联标签将变量写入脚本。 -
这些内联标签可以在html页面中使用吗?
-
你特意说这是一个ASPX页面。这些标签在 ASPX 页面上可用。它们将在服务器端进行处理,结果将包含在发送给客户端的结果 HTML 中。请参阅Embedded Code 博客。
标签: jquery asp.net vb.net webforms