2016-06-27 6 views
5

मैं अपनी वेब एपीआई सेवा के लिए टोकन आधारित प्रमाणीकरण का उपयोग कर रहा हूं। लेकिन मैं सभी रिकॉर्ड के लिए बनाई गई, निर्मित सूचनाओं को ट्रैक करना चाहता हूं। इसलिए मैं HttpContext.Current.User और GenericIdentity को अपने AuthenticationFilter में उपयोगकर्ता आईडी के साथ सेट कर रहा हूं। लेकिन मैं अपने datalayer से HttpContext तक नहीं पहुंचना चाहता क्योंकि मुझे लगता है कि डेटा परत HttpContext के बारे में कुछ भी नहीं जानना चाहिए।Asp.Net वेब एपीआई परतों में उपयोगकर्ता को पास करने

तो, क्या 'HttpContext' के बिना परतों के माध्यम से उपयोगकर्ता सूचनाओं को पारित करने के लिए कोई सर्वोत्तम प्रथा है?

उत्तर

2

अपने प्रिंसिपल को HttpContxt.Current.User और Thread.CurrentPrincipal दोनों पर असाइन करें।

फिर आप अपने कोड के अंदर कहीं से भी Thread.CurrentPrincipal तक पहुंच सकते हैं, बेशक उन परियोजनाओं से भी जिनके पास System.Web का संदर्भ नहीं है।

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