我有一个网页控制面板,其中包含指向敏感信息(如信用卡号)的链接。 当用户点击其中一个链接时(之前已登录),我需要检查他的信用卡。
如何在服务器端请求(“/sensitive-informations.aspx”)他刚刚输入他的凭证?
编辑:这里的主要问题是“他刚刚输入了他的证书”,我需要确保他直接从登录页面来。
答案 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}})。