学習を通じて、Web サイトの匿名アクセス制御を実現する 2 つの制御方法を習得しました。1 つは IIS を介して実装され、もう 1 つは ASP.NET を介して実装されます。個人的には、基本的に実現可能な 2 つの機能に違いはないと感じていますが、ASP.NET を通じて実装されたもののほうが管理と保守が容易です。
IIS による実装は比較的明確です。IIS には、「ディレクトリ セキュリティ」および「ファイル セキュリティ」の設定方法が用意されています。また、さまざまな訪問者の権限を直接設定できます。その中には、匿名のアクセス制御メソッドが提供されていますが、ここでは詳しく説明しません。
ASP.NETの制御方法:
まず、Webサイトにログイン後、ユーザー情報をCookieに保存し、他のページにアクセスする際にユーザーの本人確認を行うことができます。判定を行い、合格した場合は、認証に合格していない匿名アクセスユーザー(つまり、ログインしていないユーザー)の場合は、ログインページにジャンプします。ユーザーにログインを求めるプロンプトを表示します。ビジネス ロジックによれば、登録を許可した場合にのみログインできるため、ユーザー登録ページの 1 つを匿名でアクセスできるように設定します。
ログイン ページでは、まずユーザーのユーザー名とパスワードを確認する必要があります。データベースと比較するか、AD で確認する方法を使用して、Cookie 内の現在のユーザーを確認済みユーザーとして識別し、ジャンプします。ランディング ページにジャンプする前に、ユーザーがリクエストしたページに移動します。
FormsAuthentication.RedirectFromLoginPage(userName,createPersistentCookie);
ユーザーが直接要求したページで次のメソッドを使用してユーザーを認証します。
Context.User.Identity.IsAuthenticated
Context: ページに関連付けられた System.Web.HttpContext オブジェクトを取得します
User: 現在の HTTP 要求のセキュリティ情報を取得または設定します
Identity: 現在のユーザーの ID を取得します
IsAuthenticated: を示すブール値を取得します認証済みユーザーかどうか
次に、Web.config でセキュリティの設定を行います。
<authentication mode="Forms">
<forms loginUrl="Login.aspx"></forms>
</authentication>
"フォーム" ユーザーが資格情報を入力するためのカスタム フォーム (Web ページ) を提供し、その後、Verifyアプリケーション内でのアイデンティティ。ユーザー資格情報トークンは Cookie に保存されます。
<authorization>
<deny users="?" />
</authorization>
拒否は禁止を意味し、users="?" は匿名ユーザーを意味します
<location path="NewUser.aspx">
<system.web>
<authorization>
<allow users= "*" />
</authorization>
</system.web>
</location>
は、誰でもアクセスできる新しいユーザー登録ページ NewUser.aspx を表します。
これにより、匿名ユーザーのアクセス制御が実現します。
例: http://bear-study-hard.cnblogs.com/archive/2006/05/31/414134.htmlをダウンロードします。