如何确保用户刚刚登录?

时间:2013-02-19 08:53:29

标签: asp.net asp.net-3.5

我有一个网页控制面板,其中包含指向敏感信息(如信用卡号)的链接。 当用户点击其中一个链接时(之前已登录),我需要检查他的信用卡。

如何在服务器端请求(“/sensitive-informations.aspx”)他刚刚输入他的凭证?

编辑:这里的主要问题是“他刚刚输入了他的证书”,我需要确保他直接从登录页面来。

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。例如,在用户输入凭据后,将其保存在Session object

然后,在 sensitive-informations.aspx Page_Load中,确保Session对象存在。

为了更好地说明这一点:

在您的login.aspx.cs页面中:

protected btnLoginClick(...)
{
   // CHECK USERNAME and PASSWORD
   if (UserIsAuthenticated)
   {
      Session["UserName"] = user;
   }
}

然后在你的sensitive-informations.aspx.cs

protected page_load(...)
{
    // If UserName doesn't exist in Session, don't allow access to page
    if (Session["UserName"] == null)
    {
       Response.Redirect("INVALID_USER.aspx");
    }

}

修改:

根据OP评论,如果您想知道您来自哪个页面,您可以使用: Page.PreviousPage喜欢这样:

    protected void Page_Load(object sender, EventArgs e)
    {
        var x = this.Page.PreviousPage;

或者像这样使用Request.UrlReferrer

    protected void Page_Load(object sender, EventArgs e)
    {
        var x = Request.UrlReferrer;

在这两种情况下,请确保x先不为空...

答案 1 :(得分:0)

您可以查看UrlReferrer Page_Load事件sensitive-informations.aspx中的if (Request.UrlReferrer != null) { if (Request.UrlReferrer.AbsolutePath.ToLower().Contains("you-login-page")) { //User came from the login page } }

LastLoginDate

<强>更新 根据您的评论,您应该检查MembershipUser class

Request.UrlReferrer属性

这将为您提供当前用户的最后登录日期。您可以将其与当前日期/时间进行比较,以确保用户“刚刚输入了他们的凭据”。将此与检查用户来自哪里(Page.PreviousPage或{{1}})。

相关问题