防止用户使用会话导航到下一页

时间:2019-04-09 13:32:54

标签: c#

我设计了一个登录页面,一旦用户输入电子邮件ID,用户将获得otp。在这种情况下,我想停止用户使用url直接导航到下一页。例如,如果用户键入localhost/adminpanel.aspx,则我的otp页面从该页面命名为otp.aspx,而无需输入otp,则该页面要导航回索引页面。为此,我使用了会话。但是,如果我也给了otp,则会话值没有通过,页面正在导航到索引页面。任何帮助,谢谢。

OTP页面代码:

protected void Page_Load(object sender, EventArgs e)
{
    lblOTP.Text = Session["otp"].ToString();

    string alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string small_alphabets = "abcdefghijklmnopqrstuvwxyz";
    string numbers = "1234567890";
    Int32 digit = 8;
    string j = Convert.ToString(digit);
    string characters = numbers;
    characters += alphabets + small_alphabets + numbers;
    int length = int.Parse(j);
    string otp = string.Empty;
    for (int i = 0; i < length; i++)
    {
        string character = string.Empty;
        do
        {
            int index = new Random().Next(0, characters.Length);
            character = characters.ToCharArray()[index].ToString();
        } while (otp.IndexOf(character) != -1);
        otp += character;
    }
    vercod.Text = otp;
}

protected void btnOTP_Click(object sender, EventArgs e)
{
    string vcode = vercod.Text;

    if (lblOTP.Text == txtOTP.Text)
    {
        Session["otpp"] = vcode;
        Response.Redirect("adminpanel.aspx");
    }
}

Adminpanel.aspx代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["otpp"] == null)
    {
        Response.Redirect("index.aspx", false);
    }

    if (!this.IsPostBack)
    {
        if (!IsPostBack)
        {
            this.PopulateDropdown();
        }
    }
}

0 个答案:

没有答案