dotnetnuke-7 - DNN - 在 javascript 中获取用户角色
问题描述
我在 DotNetNuke 中有一个应用程序。我想检索标头 javascript 中的用户角色列表,并检查它是否具有“管理员”角色。最好的方法是什么?
解决方案
你可以做这样的事情
using DotNetNuke.Common;
using System.Collections;
using DotNetNuke.Security.Roles;
using System.Web.Script.Serialization;
var RoleController = new RoleController();
var UserRoles = new List<RoleInfo>();
//for dnn 7.3 and lower
if (Globals.DataBaseVersion.Major < 7 || (Globals.DataBaseVersion.Major == 7 && Globals.DataBaseVersion.Minor < 3))
{
UserRoles = RoleController.GetPortalRoles(PortalId).Cast<RoleInfo>().ToList();
}
else
{
//for dnn 7.3 and higher
UserRoles = RoleController.GetRoles(PortalId).ToList();
}
//convert the list to a json array
var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(UserRoles.Select(x => x.RoleName));
//send the json to a client side function
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "allUserRoles", "setUserRoles('" + json + "')", true);
和客户端功能。变量json
现在是一个包含所有角色的数组。
<script type="text/javascript">
function setUserRoles(roles) {
var json = JSON.parse(roles);
for (var i = 0; i < json.length; i++) {
console.log(json[i]);
}
}
</script>
推荐阅读
- python - 无法在其他环境中从 Mac 上的 Anaconda Navigator 启动 Jupyter 笔记本
- typescript - 如何在打字稿中选择一个嵌套类型的泛型来创建新的?
- python - 如何每...分钟运行一次(pyTelegramBotAPI)
- python - Telnetlib 不会因大量输出而退出
- javascript - 如何录制音频流?
- cloud-foundry - 在 Pivotal Cloud Foundry 上部署 Web 应用程序时文件上传(和其他按钮)的零星错误
- javascript - Javascript 按周分组日期对象
- azure - 如何通过 webhook 在团队中格式化 grafana 警报
- snowflake-cloud-data-platform - 如何使用雪花存储过程将变量数据传递到雪花表中
- .net-core - 扩展 ILogger 接口