2010-01-21 132 views
0

我正在用c#運行一個asp.net web應用程序。以下是用於: - 在Windows 2003服務器 - IIS6.0 - .NET框架2.0.50727表單身份驗證和XmlDocument.Load

我試圖實現窗體身份驗證,並已進入在web.config文件中下面的代碼:

<authentication mode="Forms"> 
    <forms loginUrl="01_Login.aspx" 
     name=".ASPXFORMSAUTH" 
     defaultUrl="02_PendingDoc.aspx" 
     timeout="120" 
     path="/" 
     protection="All" 
     enableCrossAppRedirects="true"> 
    </forms> 
</authentication> 

<authorization> 
    <deny users="?"/> 
    <allow users="*"/> 
</authorization> 

登錄按預期工作,除非使用有效的用戶名和密碼登錄,否則用戶將無法訪問01_Lo​​gin.aspx以外的任何頁面。當用戶提供了正確的登錄細節下面的代碼完成:

FormsAuthentication.RedirectFromLoginPage(logLogin.UserName, false); 

然而,當一個按鈕用戶點擊下面的代碼運行:

//Load xml file into XMLDocument object 
XmlDocument xmlDoc = new XmlDocument(); 

try 
{ 
     xmlDoc.Load("SearchConfig.xml"); 
} 
catch (XmlException e) 
{ 
     Console.WriteLine(e.Message); 
} 

的xmlDoc.Load函數以上的意志失敗並用以下消息創建XmlException「{」未找到預期的DTD標記。第5行,第3位。「}」。我也試圖註釋掉Web.config文件的以下部分:

<deny users="?"/> 

然後是xmlDoc.Load功能的工作原理,但當然,那麼用戶就可以訪問所有的我的應用程序頁面。

任何人,有任何想法我做錯了什麼?

+0

你必須向我們展示你正在嘗試加載,如果您希望我們幫助您和您在加載XML錯誤的XML。此外,總是顯示ex.ToString()而不是ex.Message。 – 2010-01-21 05:31:37

+0

您可能正在使用DTD引用其舊式XML驗證,現在使用xsd/xmlschema。您需要放置serchconfig.xml的內容。 – affan 2010-01-21 05:35:42

回答

0
<?xml version="1.0"?> 
<BankSearch><SearchColumns> 
    <Column> 
     <Name>Bank_Name</Name> 
     <Control>TextBox</Control> 
     <Description>Bank Name</Description> 
    </Column> 
</SearchColumns> 
<SearchStoredProc Name="usp_BankSearch"> 
    <Parameter1 control="txtBank_Name">@Bank_Name</Parameter1> 
</SearchStoredProc> 
<DisplayColumns> 
    <Column HeaderText="Bank Name" HyperLinkColumn="True" NavigateUrl="~/Bank/Bank.aspx" NavigateUrlFields="Bank_Id" QueryStrings="BID">Bank_Name</Column>  
    <Column HeaderText="Bank Address">Bank_Address</Column> 
    <Column HeaderText="Bank Email Id">BANK_EMAIL_ID</Column> 
    <Column HeaderText="Bank Phone">Bank_Phone</Column> 
    <Column HeaderText="Bank Fax">BANK_FAX_NO</Column> 
    <Column HeaderText="City">City</Column> 
    <Column HeaderText="Postal Code">POSTAL_CODE</Column> 
    <Column HeaderText="State">STATE_NAME</Column> 
    <Column HeaderText="Country">Country_Name</Column>    
</DisplayColumns>