如何解决如何在javascript中检查用户角色没有剃须刀或控制器
我正在尝试将User.IsInRole()与javascript上的razor页面一起使用。我不想使用Controller,如果可以做到的话,如何在MVC5中做到这一点?
编辑:我想按用户角色显示按钮。我可以使用剃须刀页面来做到这一点。我在javascript中的一些字段中向表中添加了元素,我将尝试在此处使用它们。
解决方法
您可以按照如下所示的价格进行操作
@{var price=20;}
<html>
<body>
@if (price>30)
{
<p>The price is too high.</p>
}
else
{
<p>The price is OK.</p>
}
</body>
</html>
,
尝试这样:
//Check login User has 'System Administrator' role
function CheckUserRole() {
var currentUserRoles = Xrm.Page.context.getUserRoles();
for (var i = 0; i < currentUserRoles.length; i++) {
var userRoleId = currentUserRoles[i];
var userRoleName = GetRoleName(userRoleId);
if (userRoleName == "System Administrator") {
return true;
}
}
return false;
}
//Get Rolename based on RoleId
function GetRoleName(roleId) {
//var serverUrl = Xrm.Page.context.getServerUrl();
var serverUrl = location.protocol + "//" + location.host + "/" + Xrm.Page.context.getOrgUniqueName();
var odataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc" + "/" + "RoleSet?$filter=RoleId eq guid'" + roleId + "'";
var roleName = null;
$.ajax(
{
type: "GET",async: false,contentType: "application/json; charset=utf-8",datatype: "json",url: odataSelect,beforeSend: function (XMLHttpRequest) { XMLHttpRequest.setRequestHeader("Accept","application/json"); },success: function (data,textStatus,XmlHttpRequest) {
roleName = data.d.results[0].Name;
},error: function (XmlHttpRequest,errorThrown) { alert('OData Select Failed: ' + textStatus + errorThrown + odataSelect); }
}
);
return roleName;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。