2016-09-22 7 views
1

私はAsp.netで新しく、それについて多くの知識を持っていません。私は1つのクエリを持っています。asp.netアプリケーションの制限されたページを表示する方法を停止する方法

マイDOTNETアプリケーションのURLは、私は、Webページ上http://www.example.com/net/afk/xyzと応答ディスプレイに要求を送信し、私のウェブサイトの内部動作についてはhttp://www.example.com

です。このパスはウェブブラウザのURLには表示されません。それは、http://www.example.com/page

を示しのみしかし、私の問題は、誰かが私のアプリケーションでは、ログイン後に直接http://www.example.com/net/afk/xyz Webブラウザに入力した場合、これはまた、オープン取得し、ユーザーは、私が表示したいいけない私のすべての情報を見ることができたときに、です。

私は何かを求めています - URL http://www.example.com/net/afk/xyzは内部では動作しますが、WebブラウザのURLからは起動できませんでした。

IISで 'net \ afk'という拒否ルールを入力しようとしましたが、私のURLはhttp://www.example.com/net/afk/xyzが内部的に応答を停止します。

私はこれで何ができるのか教えてください。このタイプの要件は可能ですか?私はあなたがあなたのページには、URLで直接開くべきではありませんしたいならば、あなたはこの方法でそれを行うことができ、あなたの質問を理解したよう

+0

2つ目の問題については、routeConfig.csコードを投稿してください.2番目の問題については、asp .net mvcを使用してください。このようなシナリオを避けるための認証フィルタ –

+0

routeConfig.csはありません。web.configだけです。 – Aashi

+0

プロジェクト内のapp_Startフォルダをチェックインします。 –

答えて

0

Uri u = HttpContext.Current.Request.UrlReferrer; 
     if (u != null) 
      return true; 
     else 
     { 
      //Here user try to hit your Page url directly 
      //Then you can redirect that user to your default Page or Home Page 
      return false; 
     } 
0

そこで、基本的に必要なもののURLにアクセスしてからユーザーを防ぐためのものです直接。これはコントローラ、アクションメソッドなどに適用できるmvcの属性を使用することで実現できます。このため、NoDirectAccessAttributeを作成して、ユーザーがアクションメソッドにナビゲートしないようにします。

using System; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace TestProject 
{ 
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] 
    public class NoDirectAccessAttribute : ActionFilterAttribute 
    { 
     public override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      if (filterContext.HttpContext.Request.UrlReferrer == null || 
         filterContext.HttpContext.Request.Url.Host != filterContext.HttpContext.Request.UrlReferrer.Host) 
      { 
       filterContext.Result = new RedirectToRouteResult(new 
           RouteValueDictionary(new { controller = "Home", action = "Index", area = "" })); 
      } 
     } 
    } 
} 

そして、次のように、これはあなたのアクションメソッドに適用できます。

[NoDirectAccess] 
public ActionResult xyz() 
{ 
    return View(); 
} 

ユーザーは、このアクションメソッドにアクセスしようとした場合NoDirectAccessAttributeに指定されているように、彼はその後、ホームページに再ルーティングされますクラス。ただし、内部的にユーザーをこの操作方法にナビゲートすることはできます。

関連する問題