2010-01-21 131 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>