Tôi hiện đang gặp sự cố với xác thực ASP.Net. Hãy xem xét hai dòng sau:FormsAuthentication.Authenticate không xác thực
MembershipCreateStatus ct = new MembershipCreateStatus();
Membership.CreateUser("admin", "mypassword", "[email protected]", "1", "1", true, out ct);
Điều này đăng ký người dùng của tôi trong cơ sở dữ liệu của tôi. Tôi đã xác minh điều này. Tuy nhiên, khi tôi chạy điều này ngay lập tức sau:
FormsAuthentication.Authenticate("admin", "mypassword");
Xác thực không thành công. Điều kỳ lạ là tôi biết thực tế là người dùng không tồn tại trong db và điều đó được xác nhận thêm nếu tôi chạy
MembershipUserCollection uc = Membership.FindUsersByName("admin");
và uc giữ người dùng quản trị của mình với tất cả thông tin thích hợp. Bất kỳ ý tưởng hay gợi ý nào từ bất kỳ ai về lý do tại sao Authenticate sẽ trả về false?
Toàn bộ chuỗi có phải là một yêu cầu http không? Bạn có thể thử làm điều này trong quá trình hai yêu cầu riêng biệt. Làm thế nào về việc tạo ra "admin" một lần, Session.Abandon(), tải lại trang và sau đó xem nếu bạn có thể xác thực. – xanadont
Hrm nope. Thậm chí nếu tôi cố gắng xác thực trên một trang riêng biệt. Vấn đề phải đến từ phần mật khẩu phải không? Tôi có nghĩa là những gì khác có thể đi sai nếu người dùng tồn tại? – snwr