我可以使用两个ApplicationUser上下文进行相同的应用程序登录吗?

时间:2014-06-05 00:10:45

标签: c# asp.net-mvc mobile azure asp.net-identity

我的问题涉及技术问题和建模问题。

我有一个MCV 5系统,其中将有一个Web前端和一个移动应用程序(Android)。 在某些时候,Web用户将能够看到移动登录用户的队列。 移动帐户不会访问网络前端,也不会访问移动应用的网络帐户。 我选择Azure来提供我所有的系统需求。

建模明智,我应该创建单独的登录系统(一个用于移动登录的后端系统)吗?

如果没有,Asp.net Identity系统是否能够使用两种不同的登录方式,因为我大致采用了这样的方式:

namespace Application.Models {
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
    public virtual ICollection<ApplicationMobileClient> Clients { get; set; }
}

public class ApplicationMobileClient : IdentityUser
{

}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
}

}

Web用户模型将拥有一组移动客户端模型。就像照片/评论系统一样。但我不知道(我不知道)如果Identity可以做这样的事情,在同一个应用程序上处理两次登录。我可能也许我只是在同一时间过多的技术/框架/ metodologies / patters,我只是不知道该怎么做大声笑。

1 个答案:

答案 0 :(得分:0)

我无法理解你为什么需要两个不同的ApplicationUser 。因为它是相同的用户,无论他是在您的网站上还是通过您的Android应用登录。如果您想跟踪用户移动登录,则可以向ApplicationUser添加属性。

public class ApplicationUser : IdentityUser
{
    public virtual ICollection<MobileSignIn> MobileSignIns { get; set; }
}

public class MobileSignIn
{

}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
    : base("DefaultConnection")
    { }
}