【问题标题】:azure mobile services and asp.net website - need to support user rolesazure 移动服务和 asp.net 网站 - 需要支持用户角色
【发布时间】:2014-04-23 19:36:49
【问题描述】:

我正在开发一个具有 azure asp.net mvc 网站和 azure 移动服务的应用程序。两者都将使用相同的 azure sql 数据库。

我了解我可以使用我的移动服务使用自定义或基于 Microsoft、Facebook 的身份验证。我将构建的网站和移动应用程序将根据用户的角色在网站和移动应用程序中具有不同的功能。

我应该如何实现用户角色?如果这只是一个 asp.net 应用程序,我会使用 ASP.NET Identity,但不确定如何使用移动服务来执行此操作。

我发现一年前提出的类似问题没有解决 - Using ASP.NET 4.0 membership provider with Azure Mobile Services

如果有现有的实施或指导,请指出我的方向。谢谢。

【问题讨论】:

    标签: asp.net-mvc-4 azure-mobile-services azure-web-app-service


    【解决方案1】:

    截至今天,无论您如何切片,都没有一种超级简单的方法来处理它。您可以查看这篇文章(还有另一个处理 JavaScript 后端的文章,该文章链接自此)http://www.acupofcode.com/2014/04/general-roles-based-access-control-in-the-net-backend/,其中讨论了使用 Azure Active Directory 进行基于角色的访问控制。 AAD 可能不是您想要使用的选项。在这种情况下,您需要自己在移动服务中实施角色和检查。如果您只有两个级别,例如“普通用户”和“管理员”,您可以根据 user.level 属性指定所有内容,如果他们是“身份验证”,他们只有基本用户访问权限,但如果他们是“管理员”,他们具有管理功能。您仍然需要在后端执行基于角色的逻辑,但我认为无论如何您都需要处理它。

    另外,我认为您可以考虑使用 ASP.NET 身份系统。然后从您的移动服务中,您可以使用我在此处记录的相同类型的自定义身份验证 (http://chrisrisner.com/Custom-Authentication-with-Azure-Mobile-Services-and-LensRocket),但是当用户离开时,而不是像该示例那样在您的移动服务中检查和存储用户名/密码要注册/登录,您可以检查由 ASP.NET 身份系统创建的用户后端。我手头没有该工作的样本,但在我的脑海中听起来是可行的。

    【讨论】:

    • 我喜欢在 Azure 网站后面使用 asp.net 身份的想法,但你的意思是 1. 使用 asp.net 身份创建 sql 数据库 2. 将该数据库与移动服务连接 3. 在使用自定义 api 的移动服务问题:移动服务会喜欢 asp.net 身份的架构吗?对于 Facebook,谷歌提供商来说,这将如何发挥作用 - 再说一次,如果没有实际实施,很难考虑到这一点,但我可以试一试,并再次用问题困扰你 :)
    • 我会先说我已经有一段时间没有看到 ASP.NET 身份了。我的想法是: 1. 创建要与 ASP.NET 标识一起使用的 SQL DB。 2. 创建您的移动服务并将其连接到同一个数据库。 3. 从移动应用端,实现一个自定义身份验证流程,该流程在后台实际使用 ASP.NET 的身份。如果您不能直接访问数据库,您应该能够将注册/登录请求发送到您的 ASP.NET 身份(请记住,您的移动服务可以使用 MSSQL 模块(用于 JS 和用于 .NET 的 C#)与其他部分对话数据库(如果需要)
    • 我不知道您是否真的能够将其与 Facebook / Google 连接起来,除非 ASP.NET 身份具有执行此操作并在其之上处理角色的功能。如果不是并且您想要 Facebook / Google,我认为最好的方法是使用移动服务中的内置身份验证,然后在您的移动服务中创建自己的角色系统。绝对是一些工作,但可行。如果您有任何问题,请继续跟进,并告诉我您是如何工作的。
    • 看到这个asp.net/mvc/tutorials/mvc-5/… 进一步考虑,我想我可能决定不使用移动服务。我可以使用 Azure MVC 网站、Azure SQL Server 和 Web API 来执行此操作,并利用 ASP.NET Identity 及其数据库。我希望有更好的方法在移动服务中利用 ASP.NET 身份。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2013-05-13
    相关资源
    最近更新 更多