2016-12-23 9 views
6

के साथ कस्टम प्राधिकरण फ़िल्टर हाय मैं एक कस्टम अधिकृत फ़िल्टर बनाने की कोशिश कर रहा हूं जो मुझे स्थानीयहोस्ट से आने वाले अनुरोधों को स्वचालित रूप से अधिकृत करने की अनुमति देगा (जिसका उपयोग मेरे परीक्षणों के लिए किया जाएगा)।एस्पनेट कोर

मुझे एएसपीनेट के लिए निम्न मिला है, हालांकि इसे एएसपीनेट कोर पर पोर्ट करने में परेशानी हो रही है।

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     if (httpContext.Request.Url.IsLoopback) 
     { 
      // It was a local request => authorize the guy 
      return true; 
     } 

     return base.AuthorizeCore(httpContext); 
    } 
} 

मैं इसे एएसपीनेट कोर में कैसे पोर्ट कर सकता हूं?

उत्तर

8

आप एक मिडलवेयर बना सकते हैं जिसमें आप स्थानीयहोस्ट से आने वाले अनुरोधों को स्वचालित रूप से अधिकृत कर सकते हैं।

public class MyAuthorize 
{ 
    private readonly RequestDelegate _next; 
    public MyAuthorize(RequestDelegate next) 
    { 
     _next = next; 
    } 

    public async Task Invoke(HttpContext httpContext) 
    { 
    // authorize request source here. 

    await _next(httpContext); 
    } 
} 

फिर एक विस्तार विधि

public static class CustomMiddleware 
{ 
     public static IApplicationBuilder UseMyAuthorize(this IApplicationBuilder builder) 
     { 
      return builder.UseMiddleware<MyAuthorize>(); 
     } 
} 

बना सकते हैं और अंत में स्टार्टअप Configure विधि में जोड़ें।

app.UseMyAuthorize(); 

Asp.Net कोर में IsLoopback संपत्ति नहीं थी। यहाँ इस https://stackoverflow.com/a/41242493/2337983

के लिए चारों ओर एक काम तुम भी Middleware यहाँ के बारे में और अधिक पढ़ सकते है

+1

धन्यवाद इलाज :-) काम किया – Jamesla

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