3

ストック標準の ASP.NET Web サイトがあります。誰でも任意のページを閲覧/閲覧できますが (管理者セクションを除く)、投稿したい場合はログインする必要があります。ほとんどの投稿サイトと同様です。

では、自分のログイン コントロールまたはユーザー名/パスワード/送信入力フィールドがある場合、フォーム認証を無効にするのではなく、有効にする必要があるのはなぜですか? データベースにユーザー/パスをチェックする独自のコードと、独自の2つの入力フィールド+送信ボタンがあり、フォーム認証は何を提供しますか?

(注: データベース内にこれらすべてのテーブルと usp を作成する asp.net メンバーシップは本当に嫌いなので、それを使用することを提案しないでください)。

同様に、私のコードでは、(自分のデータベース コードで) ユーザーを認証するときに、自分の ID を手動で作成します。

これはすべて必要ですか?これの主な目的は何ですか?

乾杯!

4

3 に答える 3

2

好きなようにユーザーを承認できます。FormAuthentication は、ユーザーがログアウトするかセッションの有効期限が切れるまでログイン状態を維持できるセッション ID と認証 Cookie を設定するために使用されます。FormsAuthentication を使用するためにメンバーシップ プロバイダーを使用する必要はありません。この機能を複製しているだけのようです。

...do your authentication against your DB or Active Directory

if (Request.QueryString["ReturnUrl"] != null)
{
    FormsAuthentication.RedirectFromLoginPage(userName.Text, false);
}
else
{
    FormsAuthentication.SetAuthCookie(userName.Text, false);
}

次に、web.config で使用するように設定する必要があります。

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name="my-auth-cookie" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
           defaultUrl="default.aspx" />
  </authentication>
</system.web>

独自の認証を行い、Cookie インフラストラクチャを実装する必要がないというすべての利点が得られます。Web サイトは編集時にのみ承認する必要があるため、すべてのユーザーがすべてのページを読み取れるようにアクセス許可を設定し、編集するときにログイン ページにリダイレクトする独自のロジックを実装する必要があります。

詳細はこちら

于 2008-11-15T00:52:52.197 に答える
0

ASP.Net フォーム認証を利用して、既存のテーブルの読み取り/書き込みを行う 独自のメンバーシップ プロバイダーを実装できることに注意してください。

于 2008-11-15T01:46:04.850 に答える
0

また、ASP.NET Web プロジェクトですぐに使用できる既定のフォーム認証から始めました。しかし、私もその株式データベースのテーブルの機能が過剰に構築されていることに非常にがっかりしました。

私の仕事の経験では、カスタムビルドの認証を使用し、ログインしたユーザープロファイル (自己作成) をセッション変数に入れました。

asp.net メンバーシップは、一部の共有ホスティング プロバイダーにも移植するのが難しい場合があります。

于 2008-11-15T01:52:38.193 に答える