18

Tôi đang làm việc trên trang MVC3 và tôi gặp vấn đề khó hiểu với ASP.NET Membership. Tôi đang sử dụng System.Web.Providers 1.0.1 được kết nối với cơ sở dữ liệu SQL Azure.Thành viên ASP.NET - đăng nhập hoạt động cục bộ, không thành công trên Azure

Hiện tại, cùng tên người dùng/mật khẩu đăng nhập tôi khi chạy trong Trình mô phỏng tính toán không thành công khi chạy dưới Azure đúng. Tôi có thể thấy rằng nó đang sử dụng cơ sở dữ liệu đúng, vì truy cập Mật khẩu thất bại trong cơ sở dữ liệu thành viên đang được cập nhật.

+0

Tôi không thể cho bạn biết vấn đề cụ thể là gì, nhưng tôi sẽ đề nghị bạn bật Intellitrace để triển khai. Đã bật Intellitrace, chỉ cần triển khai dự án đám mây, thực hiện một lần đăng nhập, sau đó tải xuống nhật ký Intellitrace. Bạn sẽ khám phá Intellitrace mạnh mẽ và hữu ích như thế nào, và tôi chắc chắn bạn sẽ giải quyết vấn đề bằng cách xem xét các ngoại lệ. – astaykov

+1

Cảm ơn bạn đã gợi ý, nhưng theo như tôi biết Intellitrace chỉ được hỗ trợ với VS Ultimate, và tôi không chắc chắn tôi đang chuẩn bị để bao ra thêm $ 12.000 trên đầu trang của chúng tôi MSDN đăng ký cho một cái gì đó có thể hoặc có thể không giải quyết được vấn đề của tôi. –

+0

Đợi ... bạn đang nói "dưới trình giả lập tính toán" ngụ ý rằng bạn đang sử dụng vai trò web hoặc vai trò công nhân - KHÔNG phải trang web (tức là IIS), phải không? Sự thay đổi của machinekey có thay đổi hành vi của trình mô phỏng tính toán của bạn không? –

Trả lời

28

Tôi đã theo dõi nó xuống, nhờ một số thông tin trong this article by David Hoerster. Vấn đề là thuật toán băm mật khẩu mặc định trên Azure khác với mặc định .NET 4.0. Nó được đặt thành SHA1 trên Azure và HMACSHA256 là cài đặt tiêu chuẩn mới trên 4.0.

Điều này có thể được khắc phục bằng cách chỉ định loại băm một cách rõ ràng trong web.config. Nếu bạn quyết định sử dụng một phương pháp như HMACSHA256, hãy đảm bảo rằng bạn cũng chỉ định một phím máy - nếu không bạn sẽ gặp phải các vấn đề tương tự như khóa máy autogenerated sẽ khác nhau từ máy chủ đến máy chủ.

Yếu tố cấu hình bạn cần thay đổi là < machinekey> dưới < system.web>:

<machineKey decryptionKey="PUT_DECRYPTION_KEY_HERE" 
      validationKey="PUT_VALIDATION_KEY_HERE" 
      decryption="AES" 
      validation="HMACSHA256" /> 

Bạn có thể sử dụng để tạo ra this machine key generator phím ngẫu nhiên ở dạng thích hợp.

+1

Cảm ơn bạn đã tham khảo! :) –

+1

Bạn được chào đón - nếu không phải vì bạn, tôi sẽ không biết JACSHT :-) –

+1

HAHAHA !!! Thật vui nhộn. Tôi cần phải quảng bá từ viết tắt đó nhiều hơn. Cảm ơn vì đã cười! –

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