【发布时间】:2010-01-21 05:28:47
【问题描述】:
我正在使用 c# 运行一个 asp.net Web 应用程序。使用以下内容: - Windows 2003 服务器 - IIS6.0 - .net 框架 2.0.50727
我正在尝试实现表单身份验证,并在 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_Login.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 函数起作用了,但是当然,用户可以访问我所有的应用程序页面。
谁知道我做错了什么?
【问题讨论】:
-
如果您希望我们帮助您解决加载 XML 时遇到的错误,您必须向我们展示您尝试加载的 XML。此外,始终显示 ex.ToString() 而不是 ex.Message。
-
您可能正在使用 DTD 引用其旧样式的 xml 验证,现在使用 xsd/xmlschema。您需要输入 serchconfig.xml 的内容。
标签: .net xml asp.net-2.0