2016-04-19 15 views
2

私はasp.netエンティティフレームワークで作業しています。私は、ページのURLを直接入力するのではなく、ログインのみでページにアクセスしたいと思います。ユーザーがページのURLを入力してアクセスしようとすると、ユーザーはログインページにリダイレクトされます。 どうすればいいですか?ユーザーはDBからユーザー名とパスワードでログインすることになっています。 私はASP.NETを初めて使っていますユーザーがASP.NETを使用して直接ブラウザのURLを入力すると、ログインページにリダイレクトする方法

+1

http://stackoverflow.com/questions/5078459の後ろにこれをで試すことができます/ asp-net-forms-authentication – ElGavilan

+0

ユーザーのログイン方法を教えてください。 dbまたはアクティブディレクトリからのusernameパスワードを使用していますか? – MrPixel6

+0

ユーザはDBからユーザ名とパスワードでログインすることになっています –

答えて

-1

セッション変数を使用してください。 ユーザーがログインするとすぐに、セッション変数を作成し、そこに値を格納します。各ページ・ページ・ロード・イベントで、セッション変数が存在するかどうかをif条件にします。else条件では、ユーザーをログイン・ページにリダイレクトします。すべてのログアウトで、セッション変数を解放します。

+3

**これを行わないでください**。これは非常に悪いデザインです。認証セクション、または[グローバルフィルタfor mvc](http://weblogs.asp.net/jongalloway/asp-net-mvc-authentication-global-authentication-and-allow-anonymous)を使用します。すべてのページで自分でコーディングすることに頼らないでください。 – Bjorn

+0

はい、おそらく、すべてのページをコーディングするための良い方法ではありません –

6

あなたが探している機能は、次の例に示すようにASP.NET Web.configファイルに次の認証/承認のセクションを追加することによって達成することができます:それは、本質的に認証されていないユーザーのためのすべてのアクセスを拒否し

<system.web> 
    <authentication mode="Forms"> 
    <forms name="SomeName" 
      loginUrl="Login.aspx" 
      protection="All" 
      path="/"> 
    </forms> 
    </authentication> 
    <authorization> 
    <deny users="?" /> 
    </authorization> 
</system.web> 

:このような認証されていないユーザーがWebサイトの任意のページにアクセスしようとすると、Login.aspxページ(詳細はMSDN https://msdn.microsoft.com/en-us/library/wce3kxhd.aspxhttps://msdn.microsoft.com/en-us/library/xdt4thhy.aspx)にリダイレクトされます。

希望すると、これが役立ちます。

1

asp.netアイデンティティを使用して(これは新しいMVCプロジェクトのデフォルトであると信じています)、データアノテーションを使用してコントローラでこの機能を設定できます。

//GET 
[Authorize] 
public ActionResult Index(){ 
    return View(); 
} 

これは自動的にしたいことがあります。あなたは承認属性は、ユーザーをリダイレクトする場所を明示的に定義する必要が終わる場合は良い答えがありhere.

-1

あなたはコード

 if (User.Identity.IsAuthenticated == true) 
     { 
      Response.Redirect("The Page you want"); 
     } 

     else 
      Response.Redirect("Login.aspx"); // redirect it to your login page 
関連する問題