asp.net mvc - मैं फ़िल्टर एट्रिब्यूट के भीतर से वर्तमान यूआरएल कैसे प्राप्त करूं?




asp.net-mvc url (3)

पूरा URL प्राप्त करने के लिए आप @rboarman द्वारा सुझाए गए @rboarman प्रयास कर सकते हैं लेकिन आमतौर पर RedirectUrl सापेक्ष यूआरएल होगा और इसके लिए आपको Request ऑब्जेक्ट की RawUrl प्रॉपर्टी को आजमा देना होगा।

filterContext.HttpContext.Request.Url  ===> http://somesite.com/admin/manage

filterContext.HttpContext.Request.RawUrl ====> /admin/manage

संपादित: दूसरा उदाहरण फिक्स्ड

मैं एक अधिकृत फ़िल्टर विशेषता एडीएन लिख रहा हूं मुझे एक स्ट्रिंग के रूप में वर्तमान यूआरएल कैसे प्राप्त करना है, यह समझने में परेशानी हो रही है, इसलिए मैं इसे लॉगऑन एक्शन के पैरामीटर के रूप में पास कर सकता हूं। लक्ष्य यह है कि यदि कोई उपयोगकर्ता सफलतापूर्वक लॉग ऑन करता है, तो उन्हें उस पृष्ठ पर रीडायरेक्ट किया जाएगा जिसे वे मूल रूप से एक्सेस करने का प्रयास कर रहे थे।

public override void OnAuthorization(AuthorizeContext filterContext)
{
    base.OnAuthorization(filterContext);

    ... my auth code ...
    bool isAuth ;
    ... my auth code ...

    if(!isAuth)
    {
        filterContext.Result = new RedirectToRouteResult(
            new RouteValueDictionary { 
                { "Area", "" }, 
                { "Controller", "Account" }, 
                { "Action", "LogOn" },
                { "RedirectUrl", "/Url/String/For/Currnt/Request" } // how do I get this?
            }
        );
    }
}

मैं वर्तमान अनुरोध से पूर्ण स्ट्रिंग यूआरएल कैसे प्राप्त करूं?


प्रयत्न:

var url = filterContext.HttpContext.Request.Url;

यह Google पर उच्चतम रैंकिंग परिणाम है इसलिए एएसपीनेट कोर 2.0 में यह है कि मैं इसे कैसे कर रहा हूं:

context.HttpContext.Request.Url();

इस विस्तार विधि का उपयोग कर:

/// <summary>
/// Returns the absolute url.
/// </summary>
public static string Url(this HttpRequest request)
{
    return $"{request.Scheme}://{request.Host}{request.Path}{request.QueryString}";
}




actionfilterattribute