Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Chạy ứng dụng C# bằng quyền Administrator của windows7

  1. #1
    Ngày gia nhập
    10 2010
    Nơi ở
    HUI
    Bài viết
    211

    Mặc định Chạy ứng dụng C# bằng quyền Administrator của windows7

    Chắc mọi người cũng biết khi ứng dụng chạy trên xp thì không sao, còn khi chạy trên windows7 thì sẽ gặp rắc rồi rất nhiều với vấn đề quyền hạn của các user trong win7
    Use không thể truy cập vào các tập tin hệ thống, không thể đọc các file từ ổ đĩa hệ thống....
    Vậy khi lập trình cần phải cho ứng dụng của mình chạy dưới quyền của Administrator thì mới có quyền hạn truy xuất tới các tệp tin của hệ thống.
    Mình đọc trên mạng có một bài viết về cách làm này, nói chung là đơn giản.
    Post qua cho mọi người xem vì thấy trên diễn đàn chưa ai đăng
    Có rất nhiều chương trình ứng dụng được cài trên windows 7 (hay windows Vista)phải chạy dưới quyền Admin mới có thể tương tác với bộ nhớ trong ổ C (ổ cài đặt windows). Thông nhưng trên thực tế không phải ứng dụng nào mà chúng ta viết ra cũng có thể chạy với quyền user thông thường, do đó có một số tính năng sẽ hạn chế. Bài viết này sẽ trình bày cách thức để yêu cầu quyền admin khi bạn mở chương trình của mình chứ không phải click chuột phải rồi chọn “run as administrator”.

    - Có rất nhiều lập trình viên khi tạo project thường tạo trong ổ C (ổ đĩa cài đặt Windows) do đó khi debug chương trình thông thường sẽ nhận được thông báo lỗi là không thể mở được file thực thi của chương trình. Do đó để tránh khỏi lỗi này thì bạn nên tạo project của mình ở ổ đĩa khác ổ đĩa cài đặt Windows, hoặc chạy Visual studio với quyền Admin.

    - Cách trên là một cách có vẻ hơi né tránh vấn đề. Ví dụ như chương trình của bạn viết ra thực hiện một số tính năng mà chỉ có quyền Administrator mới có thể truy xuất được. Khi đó bạn không đưa ra quyền yêu cầu quyền admin từ user control thì chương trình sẽ báo lỗi. Dưới đây là ảnh về một chương trình Format ổ đĩa, khi người dùng click vào bình thường như mở các chương trình khác thì nó sẽ có thông báo lỗi.

    - Nếu ở cấp độ người dùng thông thường, họ cho rằng đây là một lỗi của chương trình nhưng thực sự không phải vậy. Nếu bạn click chuột phải vào chương trình và chọn “Run as administrator” và trong hộp thoại hiện ra chọn yes thì chương trình vẫn mở bình thường.



    Vì những lý do trên, bạn nên tạo cho chương trình của mình khả năng yêu cầu quyền admin ngay từ đầu mà không phải click chuột phải như trong trường hợp trên. Dưới đây là cách thức làm điều đó:

    + Trong cửa sổ Solution Explorer của ứng dụng trên Visual Studio bạn click chuột phải vào project chọn Add –> New Item (hoặc nhấn Ctrl + Shift + A).

    + Trong cửa sổ hiện ra, chọn “Application Manifest File” và đặt tên cho nó. Sau đó click nút Add.

    + Sau khi click nút Add bạn sẽ thấy trong thanh solution explorer xuất hiện file .manifest với tên vừa tạo

    + Click vào file đó thì cửa sổ soạn thảo sẽ mở ra với một file code kiểu xml. Bạn cần chú ý nội dung dòng mà tôi tô màu vàng dưới đây:
    Visual C# Code:
    1. <requestedExecutionLevel level="asInvoker" uiAccess="false" />


    + Để chương trình của bạn ra lời gọi chạy với quyền admin bạn cần thay “asInvoker” trong dòng code trên thành “requireAdministrator”. khi đó dòng code đó sẽ trở thành.
    Visual C# Code:
    1. <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

    + Bầy giờ bạn nhấn F5 để chạy chương trình, khi đó Visual Studio 2010 sẽ xuất hiện thông báo sẽ khởi động lại visual để chạy với quyền Admin. Chọn “Restart under different credentials”

    + Bây giờ visual sẽ khởi động lại và đưa ra yêu cầu chạy quyền admin, bạn chọn “Yes”. Sau đó nhấn F5 thì chương trình sẽ chạy bình thường.

    + Bạn thử mở file thực thi .exe của chương trình lên. Bạn sẽ nhận được thông báo yêu cầu quyền Admin. Chọn yes để chạy chương trình của bạn với quyền cao nhất.\

  2. #2
    Ngày gia nhập
    10 2010
    Nơi ở
    HUI
    Bài viết
    211

    ClickOnce does not support the request execution level 'requireAdministrator'.

    Ai biết lỗi này khắc phục hộ nhé

    Sửa:


    Click chuột phải vào Project/Properties
    Chọn sang tab Security
    Bỏ chọn checkbox Enable ClickOne Security Seting
    Đã được chỉnh sửa lần cuối bởi dotritiep : 25-04-2012 lúc 09:56 AM.

Các đề tài tương tự

  1. Viết dấu trong ứng dụng Winform khi chạy bằng quyền Administrator
    Gửi bởi annvpt00110 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 11-12-2013, 09:54 AM
  2. Trả lời: 2
    Bài viết cuối: 07-06-2013, 08:15 AM
  3. Chạy chương trình với tài khoản administrator khi click vào button trên Form
    Gửi bởi virus trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 25-02-2013, 12:55 PM
  4. Trả lời: 2
    Bài viết cuối: 26-09-2011, 09:55 AM
  5. đăng ký bản quyền sáng chế, bản quyền tác giả 0903034381
    Gửi bởi thngxanhcty trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 16-12-2010, 01:20 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn