पर डेटाबेस आईडी का खुलासा करना यह वेब फ़ॉर्म-ओवर-डेटा प्रकार की चीज़ के लिए एक शुरुआती पैटर्न प्रश्न है। मैं Exposing database IDs - security risk? पढ़ा है और स्वीकार जवाब मुझे यह सोच कर कि यह समय की बर्बादी है, लेकिन प्रतीक्षा करें ...UI
मैं एक MVC परियोजना एक व्यापार तर्क पुस्तकालय संदर्भित है, और NHibernate एसक्यूएल की एक सभा में एक ही संदर्भित खजाने है। अगर किसी ने मेरे हाथ को मजबूर कर दिया और उन नियंत्रकों को सीधे मेरे नियंत्रक कोडबेस से संदर्भित किया, तो मुझे पता चलेगा कि क्या गलत हुआ। लेकिन जब वे नियंत्रक डेटाबेस रिकॉर्ड आईडी के साथ यूआरएल पैरामीटर में बात करते हैं, तो क्या यह केवल गलत लगता है?
मैं उन आईडी की कल्पना नहीं कर सकता जो कभी भी उपभोग करने योग्य (एमवीसी कार्यों द्वारा) को बदलते हैं। मैं नहीं सोचता मुझे डेटाबेस में एक ही पंक्ति के अनुरूप दो यूआई इकाइयों की आवश्यकता होगी। मैं किसी भी तरह से आईडी की व्याख्या करने के लिए नियंत्रक का इरादा नहीं रखता हूं। सरोगेट कुंजी शून्य अंतर करेगी। फिर भी, मुझे समस्या है क्योंकि तर्कसंगत डिज़ाइन के बारे में धारणाएं परत-वगैरह निर्भरताओं से बेहतर नहीं हैं।
आप एक वेब एप्लिकेशन कैसे बना सकते हैं जो केवल व्यापार तर्क असेंबली का संदर्भ देता है और बीएल ऑब्जेक्ट्स और GUID में वार्ता करता है जिसका केवल उस सत्र के लिए अर्थ है, जबकि असेंबली डेटाबेस आईडी का उपयोग करके लेनदेन जारी रखती है?
आपने मुझे इसके बारे में सोचने के लिए बहुत कुछ दिया। क्या आप मैपिंग को कार्यान्वित करने और इसे स्टोर करने के तरीके के बारे में कोई सुझाव दे सकते हैं? एएसपी में वास्तव में सबसे अच्छा स्थान "सत्र" है? –
"मैपिंग"? आप जो खोज रहे हैं उस पर स्पष्ट नहीं है। क्षेत्र संरक्षण? मैं सिर्फ सुझाव था कि आप एक एन्क्रिप्ट फ़ंक्शन करते हैं जो लेता है: फ़ील्डनाम, फ़ील्डवेल्यू, सत्र आईडी। फिर जब आप डिक्रिप्ट करते हैं तो आपको डिक्रिप्ट करने के लिए सभी 3 को भी आपूर्ति करने की आवश्यकता होती है। तो किसी अन्य सत्र में कोई भी उस मूल्य को हाइजैक करने में असमर्थ है। यूआरएल पैरामीटर के लिए आपको बस इतना ही होना चाहिए। यदि आपको कभी भी सत्र रहित पृष्ठों के लिए समर्थन की आवश्यकता है, तो आपके पास सत्र आईडी के बजाय हार्डकोडेड मान हो सकता है, सुरक्षित नहीं बल्कि सत्र रहित पृष्ठों को संवेदनशील तक कुछ भी नहीं पहुंचना चाहिए। –
मैंने आपके उत्तर के क्रूक्स पर रखा, सत्र के साथ नमक: मैपिंग को स्टोर/प्रबंधित करने की कोई आवश्यकता नहीं है - वे बिल्कुल लंबे समय तक बने रहेंगे। यह कमाल का है। धन्यवाद। –