2014-05-21 25 views
6

Diğer kullanıcılara nasıl yönetici olarak şifre sıfırlayabilirim? I GeneratePasswordResetTokenAsync atlama zamanKimlik 2.0 Yönetici tarafından parola sıfırlama

var code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); 
var result = await UserManager.ResetPasswordAsync(user.Id, code, vm.NewPassword); 

aşağıdaki kodu kullanarak denedi

kontrolör atma yöntemi olarak adlandırılır.

Birisi beni aydınlatabilir mi?

+0

Ne mvc sürümü? –

+0

mvc 5.1, etiketi güncellendi. teşekkürler –

cevap

-1

Buraya soru göndermeden önce daha fazla aramalıydım.

Görünüşe göre bir DataProtectorTokenProvider ile UserTokenProvider bağlamanız gerekir.

Ancak, DataProtector'ın ne anlama geldiğini anlamıyorum, birisi burada açıklayabilirse memnun olur.

var dataProtectionProvider = options.DataProtectionProvider; 
if (dataProtectionProvider != null) 
{ 
    manager.UserTokenProvider = new DataProtectorTokenProvider<MyUser>(dataProtectionProvider.Create("ASP.NET Identity")); 
} 

Cevap here

+0

'seçenekler 'ne anlama gelir? – Colum

+0

' kamu statik ApplicationUserManager (IdentityFactoryOptions seçenekleri, IOwinContext bağlamı) {oluştur var yöneticisi = new ApplicationUserManager (yeni UserStore (context.Get ())); var dataProtectionProvider = options.DataProtectionProvider; if (dataProtectionProvider! = Null) { manager.UserTokenProvider = yeni DataProtectorTokenProvider (dataProtectionProvider.Create ("ASP.NET Kimliği")); } iade yöneticisi; } ' – DotNetGeek

7

Ayrıca UserManager genişletmek ve herhangi bir bilgi gerektirmeyen bir açık AdminChangePassword API maruz bırakabilir bulunur. UserManager'ı genişleten ApplicationUserManager'da böyle bir şey çalışmalıdır:

public IdentityResult ChangePasswordAdmin(string userId, string newPassword) { 
    var user = FindById(userId); 
    // validate password using PasswordValidator.Validate 
    user.PasswordHash = PasswordHasher.HashPassword(newPassword); 
    Update(user); 
} 
İlgili konular