none
在網頁上讀取security log存取被拒 RRS feed

  • 問題

  • 參考網路上網頁呈現event log的source code(http://www.aspheute.com/chinese/20000811.asp),程式碼如下,


    <% @Page Language="C#" Debug="true"%>
    <% @Import Namespace="System.Diagnostics" %>
    <%
    EventLog aLog = new EventLog();
    aLog.Log = "security";
    aLog.MachineName = "."; // Lokale Maschine
    string strImage = ""; // Icon f das Event

    Response.Write("<p>Es sind  " + aLog.Entries.Count +
      " entries in the System event log.</p>");

    foreach (EventLogEntry entry in aLog.Entries)
    {
     Response.Write(entry.TimeGenerated.ToString() + "&nbsp;|&nbsp;");
     Response.Write(entry.Source + "&nbsp;|&nbsp;");
     Response.Write(entry.EventID.ToString() + "<br>\r\n");
    }
    %>


    若是底為黃色的部份改為system或application都會順利呈現system log 或application log(執行結果可以參考上面的那個網址),然而,就是無法呈現security log,會出現錯誤訊息如下:

     


    存取被拒。
    描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外詳細資訊: System.ComponentModel.Win32Exception: 存取被拒。

    原始程式錯誤:


    行 7:  string strImage = ""; // Icon f das Event
    行 8: 
    行 9:  Response.Write("<p>Es sind  " + aLog.Entries.Count +
    行 10:   " entries in the System event log.</p>");
    行 11:
     

    原始程式檔: c:\inetpub\wwwroot\event\simple.aspx    行: 9

    堆疊追蹤:


    [Win32Exception (0x80004005): 存取被拒。]

    [InvalidOperationException: 無法在電腦 . 上開啟記錄 security。Windows 尚未提供錯誤碼。]
       System.Diagnostics.EventLog.OpenForRead() +590
       System.Diagnostics.EventLog.get_EntryCount() +34
       System.Diagnostics.EventLogEntryCollection.get_Count() +10
       ASP.simple_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in c:\inetpub\wwwroot\event\simple.aspx:9
       System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
       System.Web.UI.Control.Render(HtmlTextWriter writer) +7
       System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
       System.Web.UI.Page.ProcessRequestMain() +1926


    不曉得有沒有先進遇過這樣的狀況,該怎麼處理才行?我確定security log檔,我有給予網頁使用者存取的權限,但不知道為什麼會這樣。
    2007年4月20日 上午 09:29

解答

  • Security Log的存取必須是該電腦本機的 Administrators 或 Power Users 成員才可以檢視

    或者是經由 群組原則 具有 "管理機核及安全日制" 使用者權限指派的用戶 才可管理

     

    此外經由網路其他電腦連線存取, 需要事先完成 Impersonate 或者是 AD 的 Delegated Authorization

    這樣才能成功喔!

    2007年4月23日 上午 10:05
  • 不客氣

    這個原因就是我回答的第二個部分

    要注意Impernate的問題

    而Visual Studio 2005 呼叫了 Windows Identity 類別

    加上了一些 API (總之一言難盡)

    這樣就可以啦

    2007年4月23日 下午 03:54

所有回覆

  • Security Log的存取必須是該電腦本機的 Administrators 或 Power Users 成員才可以檢視

    或者是經由 群組原則 具有 "管理機核及安全日制" 使用者權限指派的用戶 才可管理

     

    此外經由網路其他電腦連線存取, 需要事先完成 Impersonate 或者是 AD 的 Delegated Authorization

    這樣才能成功喔!

    2007年4月23日 上午 10:05
  • 感謝你的答覆!謝謝!

     

    問題不曉得為什麼就消失了…!

     

    我是用administrators去讀取的,用網頁連線存取時,有作身份的驗證,但不論是本機或是其他電腦,還是會出現之前我提到的訊息,之前是直接在記事本編輯,在IE打上網址看執行結果;而今天嘗試用visual stadio 2005開啟網站,反而可以讀取security log了,不過,我還是不曉得之前問題出在哪邊,似乎是電腦自己解決了!

     

    非常謝謝你熱心為我解答^_^

    2007年4月23日 下午 12:07
  • 不客氣

    這個原因就是我回答的第二個部分

    要注意Impernate的問題

    而Visual Studio 2005 呼叫了 Windows Identity 類別

    加上了一些 API (總之一言難盡)

    這樣就可以啦

    2007年4月23日 下午 03:54