「http://a.com/?id=5」というサーバーを制御できないとします。ユーザーに外部リンクを完全に隠す方法はないと思う。彼らはいつもHTMLソースコードとHTTPリクエストを見ることができます&元の場所をトレースバックします。 auth-ED後、あなたは「http://a.com/?id=5」からのウェブサイトを要求し、ユーザーにそれを返す: ASP.NET MVC - Using cURL or similar to perform requests in application:
私は部分的に外部のサイトには、あなたのコントローラ上で、MVCのカール同等のものを使用していることを隠すために 一つの可能な解決策リクエストを前提とする「http://a.com/?id=5は、」GETメソッドである:、その後、
public string GetResponseText(string userAgent) {
string url = "http://a.com/?id=5";
string responseText = String.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.UserAgent = userAgent;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream())) {
responseText = sr.ReadToEnd();
}
return responseText;
}
あなたは自分のコントローラでこれを呼び出す必要があります。彼らは、彼らが自分のWebブラウザで開きまったく同じウェブサイトを見ることができるように、クライアントから同じのuserAgentを渡し:
return GetResponseText(request.UserAgent);
//request is the request passed to the controller for http://MyWebsite.com/?id=123
PS:私は正しいMVCのAPIを使用していないかもしれないが、アイデアがあります。正しく動作させるには、HttpWebRequestでMVCドキュメントを参照するだけです。
質問があまり明確でない –
[URLの書き換えは.Net MVCで可能](http://stackoverflow.com/questions/2375256/url-rewriting-in-net-mvc) – Alexei
本当に隠したいですかあなたはページにアクセスする前にユーザーが認証されていることを確認したいのですか? – Daniel