2016-08-04 14 views
27

ASP.NET MVC web formunu ASP.NET Core MVC'ye taşımaya çalışıyorum. Şu anda, Request.UrlReferrer sınıfında sorun yaşıyorum.ASP.NET Çekirdek MVC'de nasıl URL Yönlendiricisi alabilirim?

orijinal çizgidir: Ancak

[HttpPost] 
    public async Task<ActionResult> ContactUsFormSubmit(ContactUs request) 
    { 
     var siteUrl = Request.UrlReferrer.ToString().ToLower(); 
     .... 
    } 

, ASP.NET Core, UrlReferrer kullanılamaz. yerine dize ait StringValues ​​döndürür

Request.Headers["Referer"] 

: Ben aşağıdaki bulduk. Bunu kullanmaya çalışmalı mıyım yoksa bu durum için başka çözümler varsa emin değilim. Request.ServerVariables da mevcut değil ya da isim alanım yok. Birisi bana doğru yönde yönlendirmek eğer gerçekten takdir ediyorum

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNetCore.Mvc; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 

şu şekildedir: My ad vardır.

+1

Google gibi bazı siteler güvenlik nedenlerinden dolayı yönlendiriciyi vermez. Google gözlerinden: Google, başvurucunun bir parçası olabilecek arama metnini görmenizi istemiyor. – Ben

+0

FYI: URL Yönlendiricisi güvenilir değil. – Win

cevap

45

Neredeyse ordasın. StringValues sınıfı, yalnızca framework'teki dizeleri etkin biçimde temsil etmek için kullanılan bir ASP.NET türüdür. Özellikle HttpContext nesnesinde. Bir dize dönüştürmek için yalnızca ToString() numaralı telefonu arayabilirsin:

string referer = Request.Headers["Referer"].ToString(); 
+0

Bunu güvenilir bir şekilde yapmak için düşünür müsünüz? Alternatif yollar var mı? –

+2

İstemci tarafından gönderilen istek başlıklarından mülke erişim açısından güvenilirdir. Bununla birlikte, temkinli olmanın çok kolay olduğu için, istemci tarafından gönderilen yönlendirici üstbilgisinin _value_'sini güvenilir olarak kabul etmem. –

+8

Yönlendiricinin anwer’de yanlış yazılmış olması durumunda merak edenler için değil. Yönlendiren doğru yazım olsa da, HTTP belirtiminde yanlış yazmayı yaptılar https://english.stackexchange.com/questions/42630/referer-or-referrer/42636 –