10

सेटअप (MVC 4 का उपयोग)ASP.net MVC वैश्विक अधिकृत फिल्टर एक AllowAnonymous कार्रवाई

public class MyAuthorizeAttribute : AuthorizeAttribute { 

    protected override bool AuthorizeCore(HttpContextBase httpContext) { 

     var isAuthorised = base.AuthorizeCore(httpContext); 

     if(isAuthorised) { 
      // retrieve authentication ticket from cookie and 
      // create custome principal and attach to 
      // httpContext.User 
     } 

     return isAuthorised; 
    } 
} 

Gloabl.asax.cs पर लॉगिन लिए मजबूर:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
    filters.Add(new MyAuthorizeAttribute()); 
} 

HomeController.cs:

using System.Web.Mvc; 

public class HomeController : Controller 
{ 
    [AllowAnonymous] 
    public ActionResult Index() 
    { 
     return View(); 
    } 
} 

समस्या

होम पेज पर एक कॉल लॉगिन पृष्ठ को लोड करने के लिए मजबूर करता है।

प्रश्न

जब HomeController.Index() कार्रवाई [AllowAnonymous] से सजाया गया है, यही कारण है कि एएसपी मुझे लॉगिन दृश्य पर पुन: निर्देशित करता है?

मैं संदर्भ

के लिए this लेख का उपयोग कर रहा
+0

मैंने अभी अंतर्निहित प्राधिकरण के साथ जांच की है और यह मेरे लिए ठीक काम कर रहा है। हो सकता है कि आपको अपने कस्टम अधिकृत कोड से जांच करनी पड़े। – VJAI

+0

मैंने अंतर्निहित प्राधिकृत विशेषता के साथ प्रयास किया है, जो मेरे ग्लोबल.एक्सएक्स में वैश्विक फ़िल्टर में जोड़ा गया विशेषता बदल रहा है लेकिन होम नियंत्रक पर इंडेक्स एक्शन को कॉल करते समय भी मुझे लॉगिन पेज पर रीडायरेक्ट किया जा रहा है। क्या मैं कुछ भूल रहा हूँ? मेरी वेब कॉन्फ़िगरेशन में कुछ सेटिंग? मेरे पास कोई सदस्यता प्रदाता, भूमिका प्रदाता या प्रोफाइल प्रदाता कॉन्फ़िगर नहीं है। क्या मेरे पास होना चाहिए? –

+0

वेब.कॉन्फिग में प्रपत्र प्रमाणीकरण सेटिंग्स एक लॉगिन पृष्ठ पर रीडायरेक्ट है। लेकिन आपको अतिरिक्त सेटिंग्स की आवश्यकता नहीं है। मैंने एक नया एमवीसी 4 एप्लिकेशन/इंटरनेट टेम्पलेट बनाने की कोशिश की जिसमें होम कंट्रोलर को प्राधिकरण और इंडेक्स एक्शन के साथ अनुमति दें और यह अपेक्षित के रूप में काम करता है। – VJAI

उत्तर

-1

हालांकि इस एक जवाब नहीं है, लेकिन ..

साथ प्रयास करें निर्मित Authorize कोड और यह सुनिश्चित करें AllowAnonymous ठीक काम कर रहा है या नहीं। मैं अपने कस्टम में देख टिप्पणियों को अधिकृत आप

की कोशिश कर रहे कुकी से प्रमाणीकरण टिकट को पुनः प्राप्त और custome प्रिंसिपल बना सकते हैं और httpContext.User

संलग्न मैं आप उस प्रक्रिया को बहुत पहले नहीं में सुझाव है कि इस thread में निर्दिष्ट Application_AuthenticateRequestGlobal.asax.cs के अनुसार।

+0

, मैंने AuthorizeAttribute का उपयोग करने का प्रयास किया है लेकिन अभी भी लॉगिन करने के लिए रीडायरेक्ट कर रहा हूं। क्या देता है? –

11

मूल प्रश्न पर मेरी टिप्पणी के अनुसार। समस्या इंडेक्स व्यू अन्य नियंत्रकों पर कार्रवाई को कॉल कर रहा था जो आंशिक विचार लौटे। बस सब कुछ के माध्यम से जाने और पुराने [अधिकृत] विशेषता को अलग करने का मामला।

+4

यदि यह समस्या हल हो गई है, तो इसे उत्तर के रूप में चिह्नित करें। आप अपने सवालों का जवाब दे सकते हैं। –

+0

बढ़िया खोज! मैं इस पर दीवार के खिलाफ अपने सिर पर टक्कर लगी थी! यह पता नहीं लगा सका कि मैं "लॉग आउट" क्यों करूँगा और अपने होम पेज पर लौटने से मुझे फिर से लॉग इन प्रक्रिया के माध्यम से ले जाएगा। धन्यवाद! – Airn5475

2

मुझे इसी तरह की समस्या थी और अंत में मैंने गलत AllowAnonymousAttribute कक्षा का उपयोग किया है।

आपके मामले में एक तुम से System.Web.Mvc :)

मैं एक निश्चित रूप से उपयोग करने के लिए: दो AllowAnonymousAttribute वर्गों रहे हैं मेरे प्रोग्राम में इसे समझने के लिए एक घंटे और अधिक खर्च किया है

5

हालांकि मूल पोस्टर को उसके मामले में कारण मिला है, लेकिन मैं अपने संकल्प को साझा करना चाहता हूं, क्योंकि जब मैं उसी लक्षण का सामना करता हूं तो इस प्रश्न में आया था।

मेरे वेब में।कॉन्फ़िग फ़ाइल मैं था, webforms के तर्क का पालन:

<authorization> 
    <deny users="?" /> 
</authorization> 

आप इस के लिए नहीं चाहिए, के रूप में यह अनुरोध किसी भी कार्रवाई को क्रियान्वित करने से पहले प्रवेश किए बिना, लॉगिन कार्रवाई करने के लिए जो पुनर्निर्देशन जगह लेता है के लिए छोड़कर नहीं कर पाएगा । मैंने केवल यह खोज लिया जब मैंने दूसरी सार्वजनिक कार्रवाई जोड़ने की कोशिश की।

+0

मैंने वही किया। एक और सार्वजनिक कार्रवाई जोड़ा जब पता चला। – Mitul

+0

इसे जोड़ने के लिए धन्यवाद, पोस्ट करने के चार साल बाद, मेरी मदद की! –

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