1

私はasp.net 5、MVC 6、Identity 3をEF7で使用しており、すべてがRC1に更新されています

スタートアップ サービスの構成には次のものがあります。

        services.AddCaching();
        services.AddSession();

     services.AddEntityFramework().AddInMemoryDatabase().AddDbContext<MyContext>(o => o.UseInMemoryDatabase());
        services.AddIdentity<User, Role>()
            .AddEntityFrameworkStores<MyContext, Guid>()
            .AddDefaultTokenProviders();


        services.AddAuthentication();

私のスタートアップ構成には次のものがあります:

        app.UseSession();
        app.UseIdentity();

ResetPasswordAsync を使用してユーザーのパスワードをリセットしようとしましたが、奇妙な理由でここでいくつかの問題が発生しました。

  • 最初にパスワードをリセットしようとすると、大文字、小文字、数字がある場合でも、大文字が必要であるというエラーが表示されます。

  • 次に、services.AddIdentity のすべての要件を無効にしてパスワードをリセットすると成功しますが、新しいパスワードでログインしようとすると機能しません。

何が起こっているのかよくわかりませんが、既知のバグはありますか?

ID オプション

        options.User.RequireUniqueEmail = true;
        //Password
        options.Password.RequiredLength = 7;
        options.Password.RequireUppercase = false;
        options.Password.RequireLowercase = false;

        options.SignIn.RequireConfirmedEmail = false;
        options.AccessDeniedPath = new PathString("/Account/Login");
        options.LoginPath = new PathString("/Account/Login");
        options.LogoutPath = new PathString("/");
        options.AuthenticationScheme = IdentityCookieOptions.ApplicationCookieAuthenticationType = "ApplicationCookie";
        options.AutomaticChallenge = true;

github で問題を再現しました: https://github.com/lasrol/EmptyDB

4

1 に答える 1

0

この問題は、API に正しい変数を渡さなかった私のコードの大きなエラーでした。これは機能します:

        var token = model.Token;
        var userid = model.UserId;
        var user = await _userManager.FindByIdAsync(userid);
        var result = await _userManager.ResetPasswordAsync(user, token, model.Password);

これは機能しませんでした (理由は明らかです。ヒント: ユーザー ID :P):

        var token = model.Token;
        var userid = model.UserId;
        var user = await _userManager.FindByIdAsync(userid);
        var result = await _userManager.ResetPasswordAsync(user, token, userid);
于 2015-12-16T21:32:59.497 に答える