两个移动应用程序使用相同的Web API和数据库集,如何区分

时间:2014-04-17 08:44:36

标签: asp.net asp.net-web-api mobile-application asp.net-web-api2

我们正在开发两个移动应用程序,一个(A)用于一组人,另一个(B)用于另一组人。

这两个移动应用程序使用相同的Web API集,但有些API可能只使用一个组,反之亦然。换句话说,我们只有一个Web API项目。

两个应用程序的用户都需要注册并(稍后)使用用户名和密码登录。我们将所有用户保存在同一个AspNetUsers表中。

现在我意识到存在问题。在应用A上注册的用户可以在应用B上登录,在应用B上注册的用户可以在应用A上登录。

我该如何解决这个问题?我们是否要求应​​用程序向我们的API发送代码,以便我们的API知道它是来自A还是B?

谢谢!

1 个答案:

答案 0 :(得分:0)

Asp.net会员拥有用户角色,您可以将authorize用户用于api的某些部分。

  • 给予" GroupA"或" GroupB"注册期间用户的角色。
  • 验证后正确设置主体。
  • 使用 System.Web.Http.AuthorizeAttribute 进行授权

  public class FooController : ApiController
  {
    [Authorize(Roles = "GroupA")]
    public void GetOnlyForGroupA(){}

    [Authorize(Roles = "GroupB")]
    public void GetOnlyForGroupB(){}

    public void GetForBoth(){}
  }