1

仲間の開発者と私は WebForms プロジェクトを MVC3 に移植していますが、これは初めてです。WebForms マスター ページを MVC3 レイアウト ページに移植しましたが、1 つスローされるのは、ログインしているユーザーのセッションです。

WebForms マスター ページで、Session をチェックして、Session("LoggedInUser") に値があることを確認し、値がない場合はログイン ページにリダイレクトします。

これを MVC3 で複製する方法がわかりません。私のグーグル検索では不十分です。レイアウトページにそのようなロジックを配置するのはちょっと悪いように思えますが、私は気が狂っているかもしれません. 確かに、すべてのアクション メソッドにそのようなチェックを入れるよりも、これを行うためのより良い方法があります.

どうもありがとう。

4

3 に答える 3

1

フォーム認証を使用している場合は、User.Identity.IsAuthenticated を使用してユーザーが認証されているかどうかを確認できます。

例:

if(User.Identity.IsAuthenticated)
{
    //Do Stuff
}
else
{
     //Redirect to login
}

個人的には、流暢なセキュリティを使用してサイトを保護しています。http://www.fluentsecurity.net/

お役に立てれば、

于 2012-07-23T18:49:10.237 に答える
1

フォーム認証を使用している場合は、ほとんどの場合、各コントローラーまたはコントローラー アクションをAuthorize属性で装飾する必要があります。これにより、そのチェックが実行され、構成されたログオン ページにユーザーがリダイレクトされます。

C# では、次のようにします。

[Authorize]
public Controller MyController
{


}

ユーザーまたはグループのリストをパラメータとして属性に指定することもできます。ログオン ページは、web.config で指定されます。

于 2012-07-23T18:48:41.207 に答える
1

すべてのコントローラーに [Authorize] タグを追加するだけです。ログインしていない場合は、web.config で指定されたログイン ページに自動的にリダイレクトされます。

さらに良いのは、他の各コントローラーが継承する BaseController を作成することです。

BaseController

[Authorize]
public abstract class BaseConroller : Controller
{

}

その他のコントローラー

public class HomeController : BaseController
{

}

HomeController の各アクションは、FromsAuthentication 設定に基づいてリダイレクトされます。

于 2012-07-23T18:48:50.373 に答える