この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 27998|答える: 3

[出典] Asp.Net MVCにおける認証と認可

[リンクをコピー]
掲載地 2017/03/16 13:47:34 | | |

MVCにはActionFilterが付属しています
WebForm Asp.NET で本人認証を実現するために、Microsoftは3つの方法を提供しています。その中で最も一般的に使われるのはフォーム認証で、対応する情報で設定する必要があります。 例えば、以下の構成情報:


つまり、ログインページはLogin.aspxで、ログイン成功後のデフォルトページはDefault.aspx、ユーザー情報は認証と暗号化の2つの方法を採用しています。 そして最も重要なのは、認証メソッドを書く必要があることです(下記の認証を書かなければならず、そうでなければForms認証だけで関連属性を設定するのは無意味です)、すべての匿名ユーザーを拒否し、通常ログインしたユーザーのみがアクセスできるようにします。 その後、ログインボタンを設定してユーザー名をクッキーに書き込むようにします(つまり、FormsAuthentication.SetAuthCookie(name, false)を実行する)。 それです。
0 MVCでは Asp.Net フォーム認証も使えますが、WebFormで行うと動作しません。 例えば、情報を次のように設定します:


Login.aspxでログインを設定し、AccountControllerでログインをトリガーします。そこにログインコードは以下の通りです:

これを行った後、あなたのログオンは実行されません。 その理由は何ですか? なぜ同じ設定がMVCでは動作しないのでしょうか? その理由は、認証方法を設定してログオンを不可にするため、仕組みが異なるからです。 では、どうやってそれを実行すればよいのでしょうか?
実際、Asp.Net MVCではこれらすべてを行うより良い方法があり、認可メソッドは不要なので、設定情報は以下のようになります。




匿名ユーザーがログインできないと明記する必要はありません。 もちろん、これだけでは不十分ですが、どのアカウントがログインしてアクセスする必要があるかをシステムに伝える必要があります。 「o()〈))o」と思うかもしれません。ああ、それは面倒すぎる。 そういうわけではなく、とてもシンプルで、認証が必要なアクションに[Authorize]をマークすればいいだけです。 例えば、HomeフォルダにIndexとHomeという2つのページがあり、IndexにアクセスしたいのですがHomeは認証されていないので、IndexにはActionタグ[Authorize]を付けるだけで済みます。つまり:



これにより、ログイン後にインデックスにアクセスでき、Homeはログイン不要です。 ロールをオーライズする必要がある場合は、Authorizeマーク時にロールを指定することができます(例:[Authorize(Role=Administrators)])。ただし、Microsoftが提供するメンバーシップメカニズムを使う必要があります。なぜなら、ロールは無意味に存在せず、対応するデータベースに存在するからです。これは別のブログでも述べました。
ActionFilterをカスタマイズする
時にはこの種の認証に満たせない場合や、柔軟性が足りないと感じる場合もあります。MVC Asp.Net ActionFilterをカスタマイズできます。 例えば、今は認証をカスタマイズしています:


ユーザー管理が必要な場合は、ロール関連のフィルターを定義します。

実際、上記の2つの属性はMVCの内蔵Authorizedで解決されており、必要に応じて拡張可能であることをお伝えします。
さて、今日はここまで! ソースコードダウンロード:FormFormsAuthenticationMvc





先の:VPSアップグレード後はプロセスが約45で、CPUは100まで動作します。
次に:警告:「同じ従属アセンブリの異なるバージョン間で未解決の競合が見つかる」
 地主| 掲載地 2017/03/30 9:40:22 |
掲載地 2017/12/28 14:58:56 |
レンダリングがあればもっと良いのですが
掲載地 2023/02/07 15:44:56 |

レンダリングがあればもっと良いのですが
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com