Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向Azure(ACS)中的移动服务添加角色_C#_.net_Authentication_Azure_Role Base Authorization - Fatal编程技术网

C# 向Azure(ACS)中的移动服务添加角色

C# 向Azure(ACS)中的移动服务添加角色,c#,.net,authentication,azure,role-base-authorization,C#,.net,Authentication,Azure,Role Base Authorization,我正在努力学习如何在ACS中扮演角色。我有一个Windows应用商店应用程序(不是网站:-),我需要管理员和成员角色,但要找到类似的非常基本的文档或教程对我来说非常困难 我所发现的只是一堆对ASP.NET或Azure网站的引用——我不能使用这些东西,因为商店应用程序不是一个网站——也不使用ASP.NET 我的Windows应用商店应用程序有Azure移动服务。你知道哪些信息对你有帮助吗 我感到惊讶的是,Azure网站上的示例/参考/教程部分似乎没有涵盖角色(除非我已经错过了好几次) 以这个场景为

我正在努力学习如何在ACS中扮演角色。我有一个Windows应用商店应用程序(不是网站:-),我需要管理员和成员角色,但要找到类似的非常基本的文档或教程对我来说非常困难

我所发现的只是一堆对ASP.NET或Azure网站的引用——我不能使用这些东西,因为商店应用程序不是一个网站——也不使用ASP.NET

我的Windows应用商店应用程序有Azure移动服务。你知道哪些信息对你有帮助吗

我感到惊讶的是,Azure网站上的示例/参考/教程部分似乎没有涵盖角色(除非我已经错过了好几次)

以这个场景为例。在这里,在管理门户的脚本选项卡中,我将一些文本插入到与当前登录用户相关联的表中(通过
insert
功能):

上面的代码在表中插入一些文本,然后向该用户发送电子邮件。但是,我如何调整此代码,使其能够(伪代码):


任何帮助都将不胜感激。

这不是一个真正的答案,但也太长了,无法发表评论,我认为这非常重要

首先,当使用来自的身份验证时,没有使用。因此,不存在Active Directory,当使用移动服务时,不存在(附加)声明。这必须非常清楚,因为我看到不断的误解和困惑@Joey仍然要求,并将ACS作为其应用程序的联合提供商,如果他依赖移动服务认证机制,则情况并非如此

因此,角色分配必须完全由应用程序逻辑和Jim描述的附加表来处理


然而,角色分配通常是一个有趣的话题,实际上并不是任何教程或文档的一部分。它不是这样的一部分,因为角色分配是应用程序本身业务逻辑的一部分,而不是身份验证服务的一部分。还有一个非常类似的问题,但同样没有详细回答如何分配角色。解决的基础和主要问题是:<代码>如何分配管理员角色< /代码>。其他所有问题都可以通过为应用程序管理员添加适当的UI来解决。尽管如此,这个问题并没有简单的答案。

角色只是一个声明,ACS是关于声明的,但如果你使用移动服务,你没有(AFAIK)通过ACS,因此你没有机会将用户ID声明转换为角色声明。您使用什么身份提供商提供Azure移动服务?您是在维护角色/分配,还是希望它成为您用于auth的目录的一部分?@JimO'Neil我正在使用Microsoft帐户(正式称为Live ID)作为我的ID提供程序。我不介意自己维护这些角色,只要它不是一个手动过程(可以在代码中完成)。您可以向WAMS数据库添加一个角色表(您可以使用任何SQL Server客户端工具附加到它)然后,在脚本中,您可以使用mssql对象向user.userID上的角色表添加一个连接,该用户ID用于获取他们的角色。这意味着您需要根据您在应用程序注册过程中从Live或build获得的不透明用户ID来填充角色,以设置该表-这在某种程度上取决于谁控制注册:“您”还是自助服务。@JimO'Neil谢谢,我想的是你刚才说的:当用户使用他们的Microsoft帐户登录时,将他们添加到一个角色,并将该角色以及我从他们那里收集的任何其他配置文件信息与ACS提供的用户ID相关联?我本来打算这样做,但我一直在想,一定会有更多的。。。正确的方法(如果你知道我的意思)。但我同意。好吧,如果角色是广告的一部分,那么你就不想再做了,但听起来你无论如何都得把它们保留在“某个地方”
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