我如何检查 javascript 中的用户角色(没有剃须刀或控制器)

Posted

技术标签:

【中文标题】我如何检查 javascript 中的用户角色(没有剃须刀或控制器)【英文标题】:How can i check User Role in javascript (without razor or controller) 【发布时间】:2021-01-22 01:26:09 【问题描述】:

我正在尝试将 User.IsInRole() 与剃须刀页面上的 javascript 一起使用。我不想使用控制器,如果可以做到,我该如何在 MVC5 中做到这一点?

编辑:我想按用户角色显示按钮。我可以用剃刀页面做到这一点。 javascript中有一些字段我在表格中添加元素,我会在这里尝试使用它们。

【问题讨论】:

【参考方案1】:

您可以按照如下所示的价格进行操作

@var price=20;
<html>
<body>
@if (price>30)
  
  <p>The price is too high.</p>
  
else
  
  <p>The price is OK.</p>
  
</body>
</html>

【讨论】:

【参考方案2】:

试试这样:

//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, textStatus, errorThrown)  alert('OData Select Failed: ' + textStatus + errorThrown + odataSelect); 
        
    );
    return roleName;

https://msdynamicscrmblog.wordpress.com/2013/03/10/get-login-user-role-names-in-javascript-in-dynamics-crm-2011/

【讨论】:

以上是关于我如何检查 javascript 中的用户角色(没有剃须刀或控制器)的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 身份检查用户角色不起作用

问:如何查看 Vuex 中的角色?

DNN 检查用户是不是在角色组中

nodeJS中的JWT管理员角色检查

如何检查用户是不是具有特定角色并因此允许某些操作?

如何检查用户是不是有任何角色 discord.js