0

App_Data新しい ASP.NET、C# の空の Web サイトを作成し、フォルダーに独自のデータベースを作成しました。ソリューションにはマスターページもあります。

とにかく、ログインページを作成したいのですが、サイトをナビゲートするときにユーザーがログインしているかどうかをどのように知ることができるかが問題です。

さらに詳しく説明すると、ユーザーがホームページを開くと、「ログイン」というラベルと次へのリンクが表示されます。/login.aspx

しかし、ユーザーがログインすると、上部の「ログイン」ラベルをUsername+ a "Logout" label(もちろんユーザーをログアウトさせます) に変更します。

私の質問は、別のページに移動する/AboutUs.aspxとします。

私はこれをたくさんグーグルで検索し、 と を含む多くの解決策を見てきましMembership ProviderLoginViewが、両方を理解していません (はい、MSDN の記事でさえ、多くの記事を読みました)。

ASP.NET でのプログラミングにはあまり慣れていません。

助けてください!ありがとう!

4

2 に答える 2

1

ASP.NET では、フォーム認証を使用することをお勧めします。 http://msdn.microsoft.com/en-us/library/ff647070.aspx

ユーザーがログインすると、ユーザーが認証されているかどうかを判断するために使用できる IIdentity オブジェクトがユーザーのセッションに存在します。ただし、認証されていないすべてのユーザーをログイン ページに戻すように web.config が構成されているため、あまり使用する必要はありません。

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="Login.aspx"
           protection="All"
           timeout="30"
           name=".ASPXAUTH" 
           path="/"
           requireSSL="false"
           slidingExpiration="true"
           defaultUrl="default.aspx"
           cookieless="UseDeviceProfile"
           enableCrossAppRedirects="false" />
  </authentication>
</system.web>

<system.web>
  <authorization>
    <deny users="?" />
  </authorization>
</system.web>
于 2012-06-03T11:30:10.933 に答える
1

あなたが言うように、ユーザー名とパスワードを保存する独自のデータベースを使用している場合は、認証プロセスを自分で処理する必要があります。これを行う最も簡単な方法は、System.Web.Security.MembershipProvider クラスから継承し、bool ValidateUser(string userName, string password) などの重要なメソッドをオーバーライドして、独自のメンバーシップ プロバイダーを作成することです。次に、web.config を使用してプロバイダーを Web サイトにプラグインする必要があります。

一方、組み込みのメンバーシップ プロバイダーとそのデータベースを使用できます。これを行うには、アプリが初めてメンバーシップ機能を使用するときに作成されるこのデータベースにユーザー データをコピーする必要があります (たとえば、VS で PROJECT -> ASP.NET 構成メニュー コマンドを実行するときなど)。その名前と場所は、web.config の接続文字列によって異なります。この方法を使用することを選択した場合、ユーザーが認証されると、サーバー側で次のコードを使用して確認できます。

User.Identity.IsAuthenticated
于 2012-06-03T12:02:46.053 に答える