是否有适用于WebForms的IsLocalUrl版本?

时间:2017-02-08 17:24:48

标签: asp.net asp.net-mvc validation returnurl

我正在使用一些MVC和一些Webforms屏幕编写混合应用程序。我需要在隐藏字段中调用带有ReturnUrl的WebForms屏幕。我想在转回它之前验证ReturnUrl。 MVC有一个Url.IsLocalUrl函数,但它似乎不适用于WebForm屏幕,因此我使用了UrlHelper类。但是当我使用它时,我得到一个NullReferenceException:

UrlHelper url = new UrlHelper();
if (url(validaddr))    <--- get NullReferenceException
{
}

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

代码应该是:

UrlHelper url = new UrlHelper();
if (url.IsLocalUrl(validaddr))    <--- get NullReferenceException
{
}

答案 1 :(得分:0)

我使用以下扩展方法来验证Web表单中的本地URL。希望这对您也有帮助。

public static bool IsLocalURL(this string _url)
{
    bool flag = false;
    try
    {
        var url = new Uri(_url);
        var ctx = HttpContext.Current;
        if (url.Host.Equals(ctx.Request.Url.Host) && url.Port.Equals(ctx.Request.Url.Port))
            flag = true;
    }
    catch { }
    return flag;
}

此扩展方法适用于字符串。您也可以为Uri类创建类似的内容。

相关问题