2013-06-14 18 views
5

私は既存のASP.Net WebアプリケーションをMVC/Entity Frameworkに変換しています。私はログイン機能に問題があります。MVC - ログインしていないとサイトにアクセスできますか?

ログインページが正常に機能していないと、正しい情報が入力されず、開始ページにリダイレクトされません。ただし、ユーザーが手動でURLを入力すると、開始ページにはまだアクセスできます。

私はMVCをかなり使い慣れていて、実際にログインしているウェブサイトを実際に作成していません。匿名ユーザーから私のウェブサイトを守るためにどこから始めたらいいですか?

[Authorize] 
public class YourController { 

} 

これは、ユーザがコントローラ上の任意のアクションをヒットするために認証される必要があります:

答えて

7

ASP.NET MVCは、あなたとあなたのコントローラを飾ることができます単にAuthorizeという属性を持っています。

public class YourController { 
    public ActionResult OpenToTheWorld() { 

    } 

    [Authorize] 
    public ActionResult GottaLogIn() { 

    } 
} 

一つの最後のノート...私のようなあなただけの特定のグループにコントローラへのアクセスを許可する必要がある場合:あなたは、コントローラ全体に異なる認証を必要とする場合

また、アクション・レベルでこれを指定することができます私はプロペを受け入れ、自分の属性を巻い

[Authorize(Roles = "Administrators, Editor")] 

私は個人的にそのようにハードコードされている文字列を嫌い:とアクションは、あなたにもAuthorize属性でそれを行うことができますオブジェクト:

[MyAuthorize(Roles = new string[] { SiteRoles.Administrator, SiteRoles.Editor })] 
+1

徹底的な回答!それは間違いなく私の問題でした。奇妙なことに、これはGoogleの検索には登場しませんでした。すぐに回答として選択します。 – Kehlan

2

ホームページコントローラで[Authorize]属性を使用しましたか?

私は推測していません。そうしないと、ユーザーは自動的にログインページにリダイレクトされます。

+0

私はしていなかった!私はそれが問題だと信じています。私はそれを働かせて、すぐに報告します。 – Kehlan

関連する問題