2012-03-25 50 views
16

Tôi đang cố gắng sử dụng tệp cài đặt để lưu trữ tùy chọn người dùng khi họ đăng nhập vào ứng dụng.Hệ thống cấu hình hiện tại không hỗ trợ cài đặt có phạm vi người dùng

tôi xác định họ là người dùng (phạm vi) nhưng tôi nhận được

System.Configuration.ConfigurationErrorsException: The current configuration system does not support user-scoped settings.

gì có thể là một giải pháp tốt?

Trả lời

11

Cài đặt phạm vi người dùng thực sự không được hỗ trợ cho ứng dụng Web. Và chúng sẽ không hoạt động, Cài đặt người dùng sẽ phải được lưu trong thư mục Users\<username>\... trên máy chủ.

Bạn có một sự lựa chọn rộng các kỹ thuật web:

  • dai dẳng cookie
  • ASP.NET viên tiểu
  • Db của riêng bạn
2

Bạn có thể thực hiện cài đặt Phạm vi áp dụng ghi bằng cách đơn giản thêm một setter vào định nghĩa thuộc tính trong Settings.Designer.cs. Ví dụ:

[global::System.Configuration.ApplicationScopedSettingAttribute()] 
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
[global::System.Configuration.DefaultSettingValueAttribute("AdminContext")] 
public string DbContext 
{ 
    get { return ((string)(this["DbContext"])); } 
    set { this["DbContext"] = value; } } 

Thông báo trước là Settings.Designer.cs là tự động tạo ra, và do đó nếu bạn sử dụng giao diện người dùng được thiết kế riêng, setters của bạn sẽ được ghi đè.

Tính năng này hoạt động trong các giao diện điều khiển và ứng dụng web.

+0

Mặc dù đây không phải là phương pháp hay nhất, nó * hoạt động * và được kiểm tra đầy đủ. Do tôi báo trước cách tiếp cận trong cơ thể, tôi không nghĩ rằng nó là hợp lệ để đưa ra một cuộc bỏ phiếu xuống. Giải pháp này là "sử dụng nguy cơ của riêng bạn" nhưng tuy nhiên, nó * là * một giải pháp. – Shane

+0

*** Cài đặt.Designer.cs được tạo tự động ***. Không phải giải pháp tốt. –

14

Khi tôi gặp sự cố này, hóa ra là tôi có tham chiếu đến dll có tệp Settings.settings (hoặc Settings.Designer.cs). Điều gì xảy ra là khi chỉnh sửa tệp Setting.settings, khi nhấp vào dòng trống ở dưới cùng, một dòng mới sẽ được thêm vào với thông tin mẫu và cài đặt người dùng mặc định thay vì cài đặt ứng dụng. Đây là một tính năng đẹp nhưng bạn có thể thấy cách sau khi thay đổi mẫu và thêm cài đặt mới, sau đó nhấp vào bên dưới để mất tiêu điểm dòng mẫu mới được thêm vào và nếu bạn không chú ý, bạn vô tình thêm cài đặt người dùng. Kiểm tra xem bạn có tệp này trong dll được tham chiếu và xóa mọi cài đặt người dùng hay không.

enter image description here

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