我有一个网站,我有一个admin.aspx页面。
用户成功登录Admin.aspx页面后,会将其重定向到Report.aspx页面。请注意,如果没有首先成功登录Admin.aspx页面,则无法访问Report.aspx页面。
请记住,还有其他页面,如index.aspx等,任何用户都可以在不登录的情况下查看。我只需要对JUST Report.aspx页面进行身份验证。
我有以下代码,但似乎没有工作,因为它说虚拟目录的问题。我做了一些根本错误的事情吗?
<location path="Report.aspx">
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" >
<credentials passwordFormat="Clear">
<user name="John" password="pass@432"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="*" />
</authorization>
</system.web>
</location>
答案 0 :(得分:1)
要在成功登录后重定向用户,请使用DestinationPageUrl属性。
<%@ Page Language="C#" autoEventWireup="false" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void PageLoad(Object sender, EventArgs e)
{
Login1.DestinationPageUrl =
String.Format("terms.aspx?{0}", Request.QueryString.ToString());
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Login id="Login1" runat="server"
DestinationPageUrl="terms.aspx">
</asp:Login>
</form>
</body>
</html>
答案 1 :(得分:1)
在 web.config 文件中:
<location path="Default.aspx">
<system.web>
<authorization>
<allow roles="Administrator, User, AdditionalUser" />
</authorization>
</system.web>
</location>
ASP.NET Forms Auth Allowing access to specific file in subdirectory when all others should be denied
答案 2 :(得分:1)
首先,您似乎不允许您的用户John
。您可能还想尝试从配置文件的特定部分中提取身份验证部分:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Report.aspx">
<credentials passwordFormat="Clear">
<user name="John" password="pass@432"/>
</credentials>
</forms>
</authentication>
</system.web>
<location path="Report.aspx">
<system.web>
<authorization>
<allow users="John"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>