Tôi có một trang web ASP.NET v2.0 (không phải ứng dụng web) trong đó thư mục gốc là công khai, nhưng thư mục con "Quản trị" yêu cầu xác thực. Tất cả mọi thứ về thiết lập là rất chung chung - Tôi đã sử dụng một chuỗi kết nối được định nghĩa trong root.config gốc và nhà cung cấp AspNetSqlMembershipProvider chuẩn, và tôi đang sử dụng điều khiển Đăng nhập ASP.NET. Web.config trong thư mục Quản trị chỉ định rằng người dùng phải có vai trò "Quản trị".Bắt lỗi "Tự động tạo tệp cơ sở dữ liệu SQLExpress" cho trang web sử dụng AspNetSqlMembershipProvider, nhưng chuỗi kết nối là SQL Server 2005
Tôi đang sử dụng SQL Server 2008 và chuỗi kết nối của tôi là tốt; mọi trang cấp cơ sở đều được điều khiển dữ liệu và tất cả đều hoạt động tốt. Và cấu hình nhà cung cấp có vẻ tốt: khi tôi đăng nhập, sự kiện "OnLoggedIn" của Kiểm soát đăng nhập sẽ kích hoạt. Dòng cuối cùng trong mã sự kiện đó chuyển hướng tôi đến trang Admin/Default.aspx của tôi. breakpoint của tôi trong "OnLoggedIn" cho tôi thấy rằng tất cả là tốt cho đến khi chuyển hướng xuống vào thư mục quản lý của tôi ... và sau đó ...
... và sau đó tôi chờ ... và chờ đợi ...
Và sau đó tôi nhận được một lỗi nói với tôi nó có kinh nghiệm một "tập tin cơ sở dữ liệu SQLExpress tự động tạo lỗi."
Tại sao trên thế giới đột nhiên cố gắng tạo tệp SQL Server Express? Tại sao nó đột nhiên bỏ qua chuỗi kết nối của tôi?
Một đầu mối lạ: Ngay trước dòng cuối cùng của sự kiện "OnLoggedIn" tôi đặt trong trường hợp này: bool blnTest = User.IsInRole ("Admin");
Tôi muốn xem liệu blnTest = true. Điều gì xảy ra là quá trình truy cập dòng này ... và chờ ... và cuối cùng nói với tôi rằng nó không thể truy cập cơ sở dữ liệu SQL Server Express. Dường như bất kỳ tham chiếu nào (hoặc trong mã của tôi, hoặc đằng sau hậu trường) để xác định Vai trò của Người dùng, gọi cơ sở dữ liệu sai.
CHỈNH SỬA: Argh, đôi khi nó đợi khi tôi kiểm tra blnTest. Lần khác, nó ngay lập tức báo cáo giá trị là "sai".
Chuỗi kết nối cho RoleProvider của bạn không? Nó có giống với AuthenticationProvider của bạn không? –
Đó là một phần của web.config chỉ đơn giản là ... –