我有AspNet Identity的wcf fulRest服务。我的Android应用程序使用此Web服务与数据库通信 - 我使用ssl使连接安全(我的应用程序是一个迷你游戏,因此它不包含如此重要的数据,我相信ssl在这种情况下是足够的保护)。
我有函数LoginUser(string userName,string unHashedPassword),如果用户存在则返回用户的id。在所有其他函数中,如果action需要curUser的信息,则使用此id - 例如我有函数addComment(string userId,string msg)(这种方法仍然使用ssl来保护不需要的句柄userId)。
在LoginUser中,我通过使用获取id(以及更多信息,如电子邮件,gameLogin):
using (var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(_context)))
{
ApplicationUser user = userManager.Find(userName, password);
if (user != null)
{
result = new LogInBaseData()
{
Id = user.Id,
Email = user.Email,
Login = user.ApplicationLogin
};
}
}
但是函数Find生成大量查询,为我选择了许多不需要的数据。有什么方法可以最佳化吗?我更喜欢通过context.User.Where()。选择(),但我不能哈希用户的密码。