2010-01-04 18 views
6

मेरे पास एक एएसपी.NET वेबफॉर्म है जिसे मैं क्लाइंट-साइड और सर्वर-साइड को मान्य सत्यापन नियंत्रणों का उपयोग करके सत्यापित करना चाहता हूं। मुझे इसके लिए समाधान नहीं मिल रहा है - क्लाइंट सत्यापन बहुत अच्छा काम करता है, लेकिन जब मैं जावास्क्रिप्ट को अक्षम करता हूं - यह सत्यापन को अनदेखा करता है।एएसपी.NET प्रमाणीकरण सर्वर पक्ष

सहायता की सराहना की जाएगी।

रोमन

+0

आप हमें और अधिक जानकारी दे सकते हैं? विशेष रूप से आप किस सत्यापन नियंत्रण का उपयोग कर रहे हैं? अंतर्निहित एएसपी.NET वैधकर्ता? यदि हां, तो इनमें से कौन सा आप उपयोग कर रहे हैं (उदा। कस्टम वैलिडेटर)। प्रत्यारोपण कोड के कुछ स्निपेट हमेशा मदद करते हैं। अंत में, क्या आप अद्यतन पैनल या कुछ AJAX-y का उपयोग कर रहे हैं? –

+0

नियमित सत्यापनकर्ताओं का उपयोग करना, बिल्कुल कस्टम वैलिडेटर नहीं। कुछ भी नहीं AJAXy, कोई पैनल नहीं ... कुछ भी नहीं। सिर्फ एक सादा रूप :) – Roman

उत्तर

9

तुम हमेशा validator1.Validate() विधि है, जो सर्वर साइड तुलना करना होगा द्वारा मान्यता को गति प्रदान कर सकते हैं। यह देखने के लिए कि सर्वर-साइड सत्यापन नहीं किया जा रहा है, Page.IsValid देखें? मुझे लगता है कि आप इसे Page.Validate() के माध्यम से आमंत्रित कर सकते हैं।

HTH

15

स्पष्ट रूप से सर्वर साइड पर Page.Validate() कहते हैं।

या आपके सत्यापन समूहों में से किसी एक को लक्षित करने के लिए Page.Validate(string) ओवरलोडेड।

अद्यतन:

मैं भूल गया, तो आप मान्य (..) चलाने के बाद, Page.IsValid property देखें - यह इस संपत्ति == false अगर प्रस्तुत करने से पेज को रोकने के लिए आप पर निर्भर है।

+0

हाय, मैंने यह कोशिश की है - लेकिन अभी भी काम नहीं किया है। मैं नियमित एएसपीनेट सत्यापनकर्ताओं का उपयोग करता हूं। कस्टम भी नहीं। जब मैं जावास्क्रिप्ट को अक्षम करता हूं - यह स्पष्ट रूप से पृष्ठ का उपयोग करता है, भले ही मैं पृष्ठ का उपयोग करता हूं। वैलिडेट(); – Roman

+0

हम्मम्म ... अगर आपने पहले से नहीं किया है, तो अधिभारित संस्करण को आजमाएं। अन्यथा, आप किस विधि या घटना को पृष्ठ पर कॉल कर रहे हैं। से वैध? –

+0

मुझे पृष्ठ पर भूलकर उस पर नाव याद आई। इसालिद। –

3

यदि आप मानक सत्यापन नियंत्रण का उपयोग कर रहे हैं, तो क्लाइंट साइड सत्यापन निर्दिष्ट होने पर भी डेटा सर्वर पर फिर से सत्यापित किया जाता है।

सही आंकड़ा 2 :, जो कहते हैं के बाद इस लेख में टिप्पणी देखें:

दो बार जांच क्लाइंट-साइड सत्यापन

एक दिलचस्प बात यह है कि यहां तक ​​कि हालांकि प्रपत्र डेटा पर मान्य है है क्लाइंट (डेटा को सत्यापित करने के लिए सर्वर से के अतिरिक्त अनुरोधों को प्रतिक्रिया देने के लिए की आवश्यकता को समाप्त करने), दर्ज डेटा को सर्वर पर पुनः सत्यापित किया गया है। पर डेटा की जांच के बाद क्लाइंट और वैध पाया गया, यह उसी सत्यापन नियमों का उपयोग कर सर्वर पर पुनः जांच किया गया है। ये नियम है कि आप वहाँ बाहर कुछ मुश्किल प्रोग्रामर के खिलाफ सुनिश्चित करने के लिए सर्वर से पेज पोस्टिंग के रूप में अगर यह सत्यापन पारित कर दिया द्वारा बाईपास सत्यापन प्रक्रिया करने की कोशिश कर की स्थापना कर रहे हैं।

http://msdn.microsoft.com/en-us/library/aa479013.aspx

लेकिन, आप, Page.Validate()

3

रोमन फोन करके सर्वर पर सत्यापन के लिए मजबूर

आप ASP.net कस्टम सत्यापनकर्ता का उपयोग दोनों एक प्रदान करने के लिए कर सकते हैं कर सकते हैं ग्राहक और सत्यापन के लिए एक सर्वर विधि। इस तरह यदि आप जेएस को अक्षम करते हैं तो आपको अभी भी सर्वर सत्यापन विधि को हिट करना चाहिए। इस उदाहरण में "क्लाइंट वैलिडेट" फ़ंक्शन को आपके पृष्ठ पर जावास्क्रिप्ट ब्लॉक में परिभाषित किया जाएगा, और teh "ServerValidate" फ़ंक्शन आपके codebehind फ़ाइल में मौजूद होगा।

<asp:textbox id="textbox1" runat="server"> 
<asp:CustomValidator id="valCustom" runat="server" 
    ControlToValidate="textbox1" 
    ClientValidationFunction="ClientValidate" 
    OnServerValidate="ServerValidate" 
    ErrorMessage="*This box is not valid" dispaly="dynamic">* 
</asp:CustomValidator> 
+0

सभी एएसपी.नेट वैलिडेटर क्लाइंट और सर्वर साइड सत्यापन प्रदान करते हैं - केवल कस्टम वैलिडेटर नहीं। –

0

उत्तर मिला! उत्तर पृष्ठ का उपयोग करना है। वैध() और उसके बाद पृष्ठ की जांच करें। यह सत्यापित करने के लिए कि सत्यापन मान्य है या नहीं। केवल पृष्ठ का उपयोग कर। वैध() ने मदद नहीं की - कोड आगे बढ़ गया और बंद नहीं हुआ।

धन्यवाद दोस्तों, रोमन

संबंधित मुद्दे