में विधियों को जोड़ना मेरे पास निम्नलिखित सेटअप है: एमवीसी> सेवाएं> रेपॉजिटरीज़। अब मैं उपयोगकर्ताओं को दस्तावेज़ में नोट जोड़ने में सक्षम होना चाहता हूं। केवल दस्तावेज़ से संबद्ध उपयोगकर्ता (या तो के रूप में मालिकों या समीक्षकों) तो मेरे NoteService में मैं उपयोगकर्ता चयनित दस्तावेज़ पर अनुमति है सुनिश्चित करने के लिए निम्न उपाय अपनाते हैं नोट्स जोड़ सकते हैं:पीओसीओ कक्षाओं
public Note GetNewNote(int documentID)
{
if (!userHasAccess(Thread.CurrentPrincipal.Identity.Name))
throw new BusinessLogicException();
// Other stuff here...
}
मेरा प्रश्न है, जहां मैं परिभाषित करना चाहिए userHasAccess विधि? यह नोट सेवा में कोई समझ नहीं आता क्योंकि यह दस्तावेज़ पर जांच कर रहा है। मैं इसे दस्तावेज़ सेवा में परिभाषित कर सकता हूं लेकिन फिर नोटस सर्विस को उस तक पहुंच की आवश्यकता होगी जो अधिक युग्मन शुरू कर रहा है।
मेरे लिए इसे दस्तावेज़ POCO पर परिभाषित करने के लिए और अधिक समझदारी होती है और फिर document.userHasAccess (...) पर कॉल करें। क्या यह अच्छा अभ्यास होगा या एक डोमेन POCO सरल गुणों तक ही सीमित होना चाहिए? मुझे चिंता है कि यह वास्तव में सत्यापन का हिस्सा है और पीओसीओ में विधि रखकर मैं सेवा और पीओसीओ के बीच सत्यापन को अलग कर रहा हूं।
मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि मेरा आवेदन बनाए रखना और परीक्षण करना आसान है। मुझे इससे कैसे निपटना चाहिए इस पर कोई सुझाव सबसे सराहना की जाएगी!
रूप में अच्छी तरह POCO इस चेक में जिम्मेदार बताते हैं userHasAccess की जांच किस तरह करते हैं? कोड एक्सेस सुरक्षा आपके लिए काम कर सकती है। – jgauffin
यह सिर्फ यह जांचता है कि उपयोगकर्ता या तो दस्तावेज़ में है। ऑनर्स या दस्तावेज़। समीक्षाकर्ता - ये दस्तावेज और व्यक्ति के बीच कई रिश्ते हैं। – James