6

पर आधारित एएसपी.नेट एमवीसी प्रमाणीकरण मेरी साइट लोगों को पोस्ट संपादित करने की अनुमति देती है। मैं चाहता हूं कि लोग केवल को उनके पोस्ट संपादित करें। मैं एक प्राधिकरण विशेषता चाहता हूं जैसे:रूट पैराम्स

[CanEditPost(PostId = Id)] 
ActionResult Edit(int Id) { } 

लेकिन ऐसा लगता है कि गुणों के पैरामीटर स्थिर होना चाहिए, जिससे यह असंभव हो जाता है। क्या इसके आसपास पाने के लिए कोई रास्ता नहीं है?

उत्तर

9

हां।

आप एक विशेषता है कि AuthorizeAttribute से विरासत बनाते हैं, तो

आप द्वारा मार्ग मानकों तक पहुँचने के लिए सक्षम होना चाहिए:

protected override bool AuthorizeCore(HttpContextBase httpContext) 
{ 
    var postId = httpContext.Request.RequestContext.RouteData.Values["Id"]; 
    . 
    . 
    . 
} 
+2

मैं 'ओवरराइड करने के लिए AuthorizeCore' नहीं जा सकते? – Xodarap

+0

@CD: तो मुझे नामकरण सम्मेलनों पर भरोसा करना है? या फिर संपत्ति के नाम पर गुजरती हैं? – Xodarap

+0

@Xodarap: हाँ, मैं किसी अन्य विकल्प के बारे में नहीं सोच सकता, कि मार्ग कैसे काम करते हैं, है ना? –

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