ASP.NET Kimliğinde nispeten yeni. Her şeyi daha iyi anlamak için ASP.NET Kimliğinin özel bir uygulamasını yapıyorum. Özel kod kullanarak başarıyla kullanıcı oluşturabiliyorum. Ancak, FindAsync(username, password)
işlevselliği çalışmıyor.UserManager.FindAsync UserStore uygulamasının özel uygulamasıyla çalışmaz
Kullanıcı: Bu IUser<int>
public class User:IUser<int>
{
public User(){ Id = 0; }
public int Id { get; private set; }
public string UserName { get; set; }
public string PasswordHash { get; set; }
public string SecurityStamp { get; set; }
}
UserStore devralır benim User
sınıftır: Burada
IUserStore' and 'IUserPasswordStore
özel uygulamasıdır
public class UserStore : IUserStore<User, int>, IUserPasswordStore<User, int>
{
private IdentityContext _context;
public UserStore()
{
_context = new IdentityContext();
}
public void Dispose()
{
throw new NotImplementedException();
}
#region IUserStore<T,K> members
public Task CreateAsync(User user)
{
_context.Users.Add(user);
_context.SaveChangesAsync();
return Task.FromResult(true);
}
public Task UpdateAsync(User user)
{
throw new NotImplementedException();
}
public Task DeleteAsync(User user)
{
throw new NotImplementedException();
}
public Task<User> FindByIdAsync(int userId)
{
return _context.Users.FirstOrDefaultAsync(user=>user.Id==userId);
}
public Task<User> FindByNameAsync(string userName)
{
var user = _context.Users.SingleOrDefaultAsync(u => u.UserName.Equals(userName));
return user;
}
#endregion
#region IUserPasswordStore<User,int>
public Task SetPasswordHashAsync(User user, string passwordHash)
{
user.PasswordHash = passwordHash;
return Task.FromResult(true);
}
public Task<string> GetPasswordHashAsync(User user)
{
return new Task<string>(() => user.PasswordHash);
}
public Task<bool> HasPasswordAsync(User user)
{
throw new NotImplementedException();
}
#endregion
}
public Task<User> FindByNameAsync(string userName)
ve public Task<string> GetPasswordHashAsync(User user)
:
var user = await UserManager.FindAsync("User1355436", "passw0rd");
dönüş sırayla kod yukarıdaki satırı UserStore
aşağıdaki yöntemleri çağırır: my MVC5 kontrolörü olarakben kullanıcı adı ve şifre ile kullanıcı bulmak çalışır aşağıdaki satırı var . Ve bundan sonra kod sürekli olarak bekleme durumuna geçer ve hiçbir şey olmaz, yani kontrol asla tekrar kontrolöre geri gönderilmez.
Burada neyim var?
Merhaba ben nasıl çalışacağını MVC diğer uygulamadan Web API çağrısı bana herhangi GitHub veya uygulama demo bağlantısı ı verin nasıl anlamak istiyorum ...
Task.FromResult()
kullanmak görebilmek. –