我是ASP.net的新手,新手,但我正在学习它自己!我正在测试和学习ASP.NET中的登录和注销功能。实际上我的问题是我有一个简单的页面,即Default.aspx用于登录目的:
<body>
<form id="form1" runat="server">
<div>
<h1>Please Sign in</h1>
UserName:
<asp:TextBox id="uname" runat="server"></asp:TextBox>
<br/>
Password:
<asp:TextBox id="upass" runat="server"></asp:TextBox>
<br/>
<asp:Button id="but" runat="server" text="signup" OnClick="but_Click"/>
<br/>
<asp:Label ID ="lblInformation" runat ="server" ForeColor ="Red"/>
</div>
</form>
</body>
我正在登录为(Default.aspx.cs):
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
String name = null;
String pass = null;
protected void but_Click(object sender, EventArgs e)
{
name = uname.Text;
pass = upass.Text;
if (name.Equals("admin")&&pass.Equals("admin"))
{
FormsAuthentication.RedirectFromLoginPage(name, false );
}
}
}
成功登录后;重定向到Home.aspx:
<body>
<form id="form1" runat="server">
<div>
<h1>Hello User</h1>
<asp:Button ID="but" OnClick="but_Click" text="signout" runat="server"/>
</div>
</form>
</body>
我退出为Home.aspx.cs
public partial class Home : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void but_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
}
}
问题 问题是登录后如果我复制Home.aspx页面URL(登录后登陆的页面),并粘贴到浏览器搜索栏并按回车键,我可以看到它没有我已经登录!
我的意思是我希望我的用户限制登陆Home.aspx,如果他没有登录任何情况!
所以问题是我如何限制我的用户查看Home.aspx页面,如果他还没有登录,因为我只是通过将Home.aspx URl复制到浏览器中我没有登录就可以查看页面! / p>
对不起我的英语我不是来自英国国家我只是在学习asp.net。
由于
答案 0 :(得分:2)
在Page_Load
事件检查中进行授权。
if (!User.Identity.IsAuthenticated)
{
Response.Redirect("~/Login.aspx");
}
答案 1 :(得分:2)
可能最简单的方法是在Home.aspx的Page_Load方法中添加
if(!Request.IsAuthenticated) { FormsAuthentication.RedirectToLogin(); }
答案 2 :(得分:0)
让ASP.Net为您完成工作;你可以通过web.config来控制它。
您可以将以下内容添加到<system.web>
部分:
<!-- Specify that only authenticated users are allowed to access pages by default.
Those that anonymous users can access will be specified separately. -->
<authorization>
<deny users="?" />
</authorization>
然后,您可以添加以下条目以允许未登录的用户访问default.aspx:
<!-- Specify those files that all users can access, even if they aren't logged in -->
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>