2010-04-28 35 views
6

Không chắc chắn điều này liên quan đến VS 2010 hay khung nâng cấp, nhưng ... chúng tôi đang sử dụng nhà cung cấp thành viên Oracle để xác thực người dùng. Trước khi nâng cấp mọi thứ hoạt động tốt, nhưng bây giờ Membership.ValidateUser(user, password) trả về false mặc dù thông tin đăng nhập hợp lệ. Không có ngoại lệ nào được ném ra, vì vậy thật khó để xác định vấn đề có thể là gì. Công cụ quản trị trang web trong VS 2010 vẫn có thể quản lý người dùng và vai trò (nhiều hơn hoặc ít hơn), vì vậy tôi không có lý do gì để đặt câu hỏi về kết nối. Vấn đề có thể là gì?Membership.ValidateUser luôn trả về false sau khi nâng cấp lên VS 2010/.NET 4.0

Trả lời

7

Câu trả lời (theo this post) là để xác định hashAlgorithmType="SHA1" trong Web.config:

<membership defaultProvider="OracleMembershipProvider" hashAlgorithmType="SHA1"/> 

này không giải quyết được vấn đề cho người dùng hiện tại, nhưng người dùng mới tạo có thể đăng nhập ngay bây giờ.

+0

Tôi đoán rằng đối với những người dùng mới được tạo, việc thêm 'hashAlgorithmType' là một cá trích đỏ. Thử thêm và xác thực người dùng mới mà không có nó. Tôi nghi ngờ rằng vấn đề có liên quan đến khóa máy autogenned. Đang viết một số bài kiểm tra. sẽ cập nhật câu trả lời. –

+0

Những người dùng mới được tạo có thể được xác thực trên một hộp (phát triển) khác, vì vậy tôi nghĩ rằng hashAlgorithmType đã khắc phục được sự cố. –

+0

@ nw - cảm ơn câu trả lời này vì tôi đã có cùng một vấn đề và đã đập đầu vào tường trong nhiều giờ. Dường như không có bất kỳ tài liệu nào về việc phải thực hiện thay đổi này khi nâng cấp lên .net 4.0. – leora

0

Có thể bạn đang gặp phải sự khác biệt về máy.

Trong web.config - phần ẩn machineKey sử dụng mã hóa tự động được tạo và các khóa xác thực lại được gán cho Id ứng dụng (AutoGenerate,IsolateApps).

Bạn có đang thử nghiệm với một phiên bản ứng dụng khác hoặc trên một máy khác không?

Nhà cung cấp tư cách thành viên Oracle 2.0 hoặc 4.0?

Và đây chỉ là một đâm trong bóng tối, có thể điều này sẽ dẫn bạn đến một giải pháp.

Từ .NET Framework 4 Migration Issues

loại Membership

Một số loại (ví dụ, System.Web.Security.MembershipProvider) được sử dụng trong ASP.NET thành viên đã được chuyển từ System.Web.dll để lắp ráp System.Web.ApplicationServices.dll. Các kiểu được di chuyển để giải quyết các phụ thuộc phân tầng kiến ​​trúc giữa các kiểu trong máy khách và trong các khung công tác .NET Framework mở rộng.

Thư viện lớp đã được nâng cấp từ các phiên bản trước của ASP.NET và sử dụng các loại thành viên đã được di chuyển có thể không biên dịch được khi được sử dụng trong dự án ASP.NET 4. Nếu vậy, hãy thêm tài liệu tham khảo trong dự án thư viện lớp để System.Web.ApplicationServices.dll

+0

Chúng tôi không có vấn đề biên dịch, và các vấn đề xảy ra với cả hai Oracle các nhà cung cấp thành viên 2.0 và 4.0. –

1

Âm thanh một chút giống như vấn đề tôi đang gặp ..

Thêm một yếu tố machineKey để web.config thay vì hashAlgorithmType = "SHA1" cố định vấn đề .. nhưng tôi vẫn không hiểu tại sao tôi cần đưa rằng có ... đã không thể tìm thấy bất kỳ tài liệu hoặc ..

Bạn có thể kiểm tra câu hỏi của tôi ở đây .. The user name or password provided is incorrect. in MVC 3 Internet Application

Các vấn đề liên quan