اكثر كنترلهاي تعيين اعتبار ASP.Net بر اساس جاوا اسكريپت كار ميكنند (مانند RangeValidator و امثال آن). حال اگر كاربري افزونه no script فايرفاكس را نصب كرده بود چه بايد كرد؟
با استفاده از اين افزونه، اين نوع كنترلها از كار خواهند افتاد (چون ديگر كدهاي جاوا اسكريپتي آنها اجرا نخواهند شد).
خوشبختانه براي بررسي صحت عملكرد اين كنترلها در ASP.Net امكان بررسي خاصيت Page.IsValid نيز وجود دارد كه در ادامه به آن خواهيم پرداخت.
صفحهي بسيار ساده ASP.Net زير را در نظر بگيريد:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="testWebForms87.WebForm3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtData" runat="server"></asp:TextBox>
<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="txtData"
ErrorMessage="لطفا يك عدد وارد كنيد" MaximumValue="100000" MinimumValue="0" SetFocusOnError="True"
Type="Integer"></asp:RangeValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtData"
ErrorMessage="لطفا مقداري را وارد نمائيد" SetFocusOnError="True"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit" />
<br />
<asp:Label ID="lblValue" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
سپس براي بررسي سمت سرور عملكرد كنترلهاي تعيين اعتبار در ASP.Net ميتوان به صورت زير عملكرد:
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (btnSubmit.CausesValidation)
{
// Validate the Page
Page.Validate();
// Ensure Page is Valid
if (!Page.IsValid)
{
lblValue.Text = "لطفا جاوا اسكريپت را در مرورگر خود فعال نمائيد";
return;
}
}
lblValue.Text = txtData.Text;
}
راه ديگر بررسي غيرفعال بودن جاوا اسكريپت در يك صفحه استفاده از روش سنتي تگ noscript است:
<noscript>
<meta http-equiv="refresh" content="0;url=http://www.google.com">
</noscript>
در پايان بايد خاطر نشان كرد كه هيچگاه به كنترلهاي تعيين اعتبار سمت كاربر اطمينان نكنيد و حتما يا از روش فوق استفاده نمائيد، يا در روال submit صفحه به سرور، يكبار ديگر دادهها را به صورت دستي نيز بررسي كنيد. براي مثال اگر كاربر قرار است آدرس ايميلي را وارد كند، حتما يكبار ديگر با استفاده از regular expressions ، در سمت سرور نيز عبارت ورودي را بررسي كنيد.