1

Asp.Netの多くのことは、想定される知識に基づいていることがわかりました。たとえば、私はインターネット認証についてあまり知らず、初心者レベルでそれについて何かを見つけるのに苦労しています。

私を困惑させているのは、AuthorizeAttributeです。私はそれを使用する方法とそれが何をすべきかを理解していますが、あなたがカスタムログインシステムを持っている状況でそれが機能するかどうか疑問に思っています。

AuthorizeAttributeページの説明では、単純に When you mark an action method with AuthorizeAttribute, access to that action method is restricted to users who are both authenticated and authorized.

では、認証されたユーザーとは、どのようにして1人のユーザーを認証されるように設定するのでしょうか。独自のログインシステムを作成する場合、ログインしたユーザーがAuthorizeAttributeで十分に認証され、エントリを許可するように設定するにはどうすればよいですか?

4

4 に答える 4

5

IPrincipalのIIdentityIsAuthorizedをチェックします。

Global.asaxに、「AuthorizeRequest」を処理するメソッドを追加します。次に、その方法で、ユーザーが許可されていることを確認するために必要なことをすべて実行します(セッション、Cookie、データベースなどを確認します)

次に、HttpContext.Current.Userを、IIdentityを実装し、IsAuthorizedがtrueに設定されているユーザーを持つGenericPrincipalに設定します。

このようなもの:

  public class MvcApplication : HttpApplication
  {
    public MvcApplication()
    {
      this.AuthorizeRequest += this.AuthorizedRequestEvent;
    }

    private void AuthorizedRequestEvent(object sender, System.EventArgs e)
    {
      // do checking here with what ever you want
      bool isAuthenicated = false;

      // change this what what ever implements IIdentity
      var user = new User(); 
      user.IsAuthenticated = isAuthenicated ;
      GenericPrincipal principal;
      principal = new GenericPrincipal(user, new string[] { });
      HttpContext.Current.User = principal;
    }
   }
于 2012-03-12T13:56:45.203 に答える
1

HttpContext.Current.UserUser現在ログインしているユーザーであるオブジェクトが含まれています。中にいる間、Controllerこれは単純にからも取得できますUser

于 2012-03-12T13:53:01.570 に答える
1

初心者レベルの知識が必要な場合は、良い本を買いに行く必要があります。Amazon.comですばやく検索すると、Pro ASP.NET MVC 3 Frameworkが多数サポートされていることがわかります。これは、おそらく開始するのに適した場所です。このような本の価値は、Webアプリ(認証を含む)を構築する前から後ろへの例を紹介することです。

セキュリティに関しては..あなたはあなた自身を構築したくありません..特にあなたが初心者の場合。何かを間違えて混乱してしまうのは簡単すぎます(そこにいると..それをしました)。組み込みの認証を使用します。繰り返しになりますが、本は始めるのに最適な場所ですが、それ以外の場合は、組み込みのテンプレートから始めて、このウォークスルーに従ってください。それが終わったら、コードを読み始め、クラス名をGoogle検索ポイントとして使用します。

于 2012-03-12T13:53:03.367 に答える
1

ASP.NETパイプラインがどのように機能するかについての基本的な情報が不足しています。

http://msdn.microsoft.com/en-us/library/bb470252.aspx

特に、初期のどこかAuthenticateRequestで、プラグされたモジュールがユーザーを認証されるように設定する可能性があるイベントがあります。彼らはどのようにそうしますか?現在HttpContextのを評価する場所User以外の何かに設定することによって。nullIdentity.IsAuthenticatedtrue

コンテキストのUserプロパティは特定のタイプにバインドされていないため(タイプが継承する任意の値にすることができますIPrincipal、任意の認証プロバイダーが可能です。

そして最後に、多くの人が、Cookieから情報を取得するフォーム認証モジュールに固執しています。

于 2012-03-12T13:55:27.367 に答える