0

認証のためにテンプレートに組み込まれたASP .NET MVCを使用しています。一部のカスタマイズのロールでは、新しい登録ユーザーコードを別のページにコピーし、次の方法でデータベースに保存しました。エラー:入力に64文字以外の2文字以上のパディング文字が含まれています

public void adduser(AdduserModel role){ 
    ApplicationUser appUser = new ApplicationUser() { Email = role.Email, PasswordHash = role.Password, UserName = role.Email, EmailConfirmed = true }; 
    var manager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
    var response = manager.Create(appUser); 
} 

、テンプレートAccountControllerでパスワードにパスワードや電子メールなどを格納しているが、暗号化された形式でパスを記憶しているプレーンテキストやテンプレートコードにmyCode保存される両

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
{ 
    if (!ModelState.IsValid) 
    { 
     return View(model); 
    } 
    var user = await UserManager.FindByNameAsync(model.Email); 

    // Session["UserName"] = model.Email; 
    // This doesn't count login failures towards account lockout 
    // To enable password failures to trigger account lockout, change to shouldLockout: true 
    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 
} 

を次のようになります。

ログインしようとするとテンプレート登録ユーザーが正しく実行され、ログインしても私のコードで次のエラーが表示されます。

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or a non-white space character among the padding characters.

どうすれば解決できますか?

+0

認証されたユーザーの役割を設定し、[Authorize(Roles = "Admin")]のようなアクションを装飾しましたか? – LKC

+0

はい私はしようとしましたが、何か間違っていました。簡単に説明できませんか? –

+0

内蔵の認証と承認を使用してasp.netテンプレートを使用したくない場合は、カスタムロールと認証に従うことができる記事はほとんどありません。http://www.dotnettricks.com/learn/mvc/custom-authentication -and-authorization-in-aspnet-mvc https://www.codeproject.com/Articles/578374/AplusBeginner-splusTutorialplusonplusCustomplusF – LKC

答えて

0

は私がカスタムをされているコードの面積のか分からない、とあなたが使用しているテンプレート/ asp.netのアイデンティティのバージョンがありますが、標準のUserManagerを使用している場合は、試してみてください。

ApplicationUser appUser = new ApplicationUser() { Email = role.Email, UserName = role.Email, EmailConfirmed = true }; 

var manager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>(); 

var response = manager.Create(appUser, role.password); 

UserManagerはあなたのために暗号化を処理する必要があります。

manager.Createを呼び出して、最初の行(ApplicationUser)の作成に含めないで、平文のパスワードを渡してください。

関連する問題