2010-07-06 25 views
9

Tôi chỉ muốn viết mã bên trong hội đồng của mình để phát hiện xem nó đang chạy trên một "máy tính để bàn" hay trong ngữ cảnh của một ứng dụng ASP.NET. Đây là những người quan trọng, (mục đích cấp phép), và tôi không muốn bị sa thải vì tôi đã làm sai.Làm thế nào tôi có thể phát hiện xem cụm từ .NET của tôi có đang chạy từ trang web hoặc từ máy tính để bàn không?

Vì vậy, vui lòng, trực tiếp và nếu bạn vui lòng cho tôi một số đoạn mã.

EDIT: Tôi phụ thuộc vào câu trả lời của bạn

EDIT v 2.0: Điều gì về việc sử dụng trong lắp ráp:

[assembly: "AspNetHostingPermission (SecurityAction.RequestRefuge, Unrestricted=true)]" 

để ngăn chặn việc thực hiện trên web?

Trả lời

4
+0

Có lẽ bạn đang đúng. Tôi đã không tìm kiếm nó và tôi chỉ nhìn thấy những gì được liệt kê sau khi tôi bước vào câu hỏi. Vì vậy, tôi cung cấp cho bạn các khoản tín dụng. Tôi sẽ kiểm tra. Cảm ơn bạn. –

+0

Bây giờ tôi đang suy nghĩ: nếu ai đó tạo ra một thực thi (console) và gọi nó sẽ cùng một mã vẫn còn hợp lệ? Tôi không có kinh nghiệm với ASP.NET và không biết các thủ thuật. –

3

Kiểm tra xem HttpContext.Current là null và sau đó báo cáo nó không chạy như một ứng dụng web, ví dụ:

if (HttpContext.Current == null) { 
    // Report that it is not running as web app. 
} 

Bạn sẽ phải tham chiếu đến System.Web trong tài liệu tham khảo của bạn và bạn sử dụng câu lệnh.

+1

Bạn có một điểm. Tôi đã hợp nhất đề xuất của bạn với tuyên bố trên (afolkesson) trong một tuyên bố. –

+0

Vâng, điều đó sẽ giúp bạn – ileon

+4

Bởi kinh nghiệm tôi nên chỉ ra rằng nếu họ kiểm tra HttpContext từ một chủ đề mới nó sẽ là null, đôi khi nó là null ngay cả trong thread hiện tại ... không đáng tin cậy như một biến ... – VSP

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