【发布时间】:2013-04-12 14:41:00
【问题描述】:
我正在尝试了解如何在 ACS 中执行角色。我有一个 Windows 应用商店 App(不是一个网站 :-),我需要 Administrator 和 Member 角色- 但是对于我来说,即使是非常基本的文档或教程也很难找到。
我发现的只是一堆对 ASP.NET 或 Azure 网站的东西的引用——我不能使用,因为商店应用不是网站——而且不使用 ASP.NET。
我有适用于我的 Windows 应用商店应用的 Azure 移动服务。有什么你知道的可以帮助的信息吗?
我很惊讶 Azure 网站的任何地方的示例/参考/教程部分似乎都没有涵盖角色(除非我错过了好几次)。
以这个场景为例。在这里,在管理门户的脚本选项卡中,我将一些文本插入到与当前登录用户关联的表中(通过insert 函数):
var SendGrid = require('sendgrid').SendGrid;
function insert(item, user, request) {
item.userId = user.userId;
request.execute(
{
success: function() {
request.respond();
// Send email in the background.
sendEmail(item);
}
}
);
}
上面的代码在表格中插入一些文本,然后向该用户发送一封电子邮件。但是,我该如何调整这段代码,以便它会(伪代码):
if item.text == "administrator"
then insert userid into admin column
else
then insert userid into member column
任何帮助都将受到高度赞赏。
【问题讨论】:
-
角色只是一个声明,而 ACS 就是声明,但如果您使用的是移动服务,那么您(AFAIK)不会通过 ACS,因此您没有机会将 UserID 声明转换为 Role 声明。您为 Azure 移动服务使用什么身份提供商?您是在维护角色/分配还是希望它成为您用于身份验证的目录的一部分?
-
@JimO'Neil 我使用 Microsoft 帐户(以前称为 Live ID)作为我的 ID 提供者。我不介意自己维护这些角色,只要它不是手动过程(可以在代码中完成)。
-
好吧,您可以将角色表添加到您的 WAMS 数据库(您可以使用任何 SQL Server 客户端工具附加到它),然后在您的脚本中,您可以使用 mssql 对象向您的角色添加连接用于获取其角色的 user.userID 上的表。这意味着尽管您需要根据从 Live 获得的不透明用户 ID 填充角色,或者为您的应用构建注册过程以设置该表 - 有点取决于谁控制注册:“您”或是自助的吗?
-
@JimO'Neil 谢谢,我想的是你刚才所说的:当用户使用他们的 Microsoft 帐户登录时,将他们添加到角色并关联该角色以及任何其他配置文件我从他们那里收集到的信息,以及 ACS 提供的 userId?我打算这样做而不问任何问题,但我一直认为必须有一个更......正确的方法(如果你知道我的意思)。但我对此很好。
-
好吧,如果角色是 AD 的一部分,那么您就不想重新创建,但听起来您无论如何都必须在“某处”维护它们
标签: c# .net authentication azure role-base-authorization