2010-03-07 15 views
8

Trong ứng dụng C#, tôi đang tạo chữ ký bằng DSACryptoServiceProvider. Nếu người dùng thực hiện apllication có một hồ sơ tạm thời, tôi nhận được một ngoại lệ: CryptographicException: "Hồ sơ cho người dùng là một hồ sơ tạm thời."Làm cách nào để biết liệu tiểu sử cho người dùng thực hiện một ứng dụng có phải là một hồ sơ tạm thời không?

Lỗi có thể được giải quyết nếu tôi đặt DSACryptoServiceProvider.UseMachineKeyStore = true; Nhưng trước hết tôi muốn kiểm tra xem có cần thay đổi không. Đối với điều đó, tôi muốn trong mã của tôi để kiểm tra của người dùng có một hồ sơ tạm thời.

Tôi làm cách nào để kiểm tra?

+0

không phải là trường hợp sử dụng tương tự, nhưng đây là một câu hỏi tương tự - http://stackoverflow.com/questions/43762021/programmatically-detect-that-user-has-logged-in-with-temporary-profile – William

Trả lời

1

Thông tin duy nhất tôi tìm thấy về vấn đề này dường như chỉ vào triển khai nhấp chuột.

Có workaround dường như không được biết đến kể từ khi bạn nên sử dụng một hồ sơ không tạm thời để thực hiện các cuộc gọi bạn đang làm ...

Rõ ràng bạn dường như đã trả lời câu hỏi của riêng bạn trông ở đây ...

Tôi muốn trong mã của mình để kiểm tra người dùng có hồ sơ tạm thời.

Tôi làm cách nào để kiểm tra?

Và câu trả lời là ...

Nếu người dùng thực hiện các apllication có một hồ sơ tạm thời, tôi nhận được một ngoại lệ: CryptographicException: "Các hồ sơ cho người sử dụng là một tạm thời Hồ sơ."

Có vẻ khá đơn giản, nếu bạn gặp lỗi đó, bạn cần thực thi bằng một cấu hình khác. Bạn có thể có một phương pháp thử nghiệm thực hiện mã này dưới dạng kiểm tra trước khi chạy qua mã thực tế của bạn.

Tôi đã nghe nói về một lựa chọn khác tuy nhiên, giả định này là trong bối cảnh của một ứng dụng asp.net bạn sẽ có thể để có được hồ sơ hiện tại như thế này ...

ProfileCommon profile = HttpContext.Current.Profile as ProfileCommon; 

Từ đó bạn nên có thể truy vấn các trường hợp hồ sơ, tôi tin rằng nó là một loại ProfileBase tài liệu ở đây ...

http://msdn.microsoft.com/en-us/library/ms151820(v=VS.100).aspx

Hope this helps mọi việc rõ ràng lên một chút cho bạn.

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