0

私は学位取得のための学生執筆プロジェクトで、asp.net メンバーシップとユーザー管理を理解しようとしています。

私はたくさんの記事を読みました。いくつかは便利でしたが、いくつかは私を混乱させました。これを読んだ後:ASP.NETのメンバーシップ、ロール、およびプロファイルの調査

SQLサーバーでユーザーデータベースを作成するSqlMembershipProviderを定義しました。次に、.net の管理ツールからいくつかのユーザーを定義し、aspx ページにログイン コントロールを追加しました。

私の質問は次のとおりです。

  • コントロールは、ログインしたユーザーに関する情報をどこに保存しますか? どうすればアクセスできますか?

  • ユーザーを検証して別のページにリダイレクトするログイン機能を自分で定義するにはどうすればよいですか?

  • 新しいページで loginstatus コントロールを使用して、ログイン中または匿名のさまざまなユーザーに関する情報を表示するにはどうすればよいですか?

  • 特定のページを特定のユーザーに制限し、さまざまなユーザーに基づいて動的なページを構築したいと考えています。役割を定義してユーザー役割を確認する必要がありますか?

  • ユーザーと役割を管理するために、他にどのようなメンバーシップ機能を使用できますか?

これは、プロバイダーと接続文字列を定義した後の構成ファイルです。

<configuration>
    <connectionStrings>
        <add name="igroup20_test2ConnectionString" connectionString="Data Source=Media.ruppin.ac.il;Initial Catalog=igroup20_test2;User ID=igroup20;Password=********" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    <system.web>
        <authentication mode="Forms"/>
        <compilation debug="true" targetFramework="4.0"/>
        <membership defaultProvider="CustomizedProvider">
            <providers>
                <add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="igroup20_test2ConnectionString" applicationName="ScottsProject" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0"/>
            </providers>
        </membership>
    </system.web>
</configuration>

これらは、プロバイダーが ms sql サーバーで作成したテーブルです。

aspnet_Applications
aspnet_Membership
aspnet_Paths
aspnet_PersonalizationAllUsers
aspnet_PersonalizationPerUser
aspnet_Profile
aspnet_Roles
aspnet_SchemaVersions
aspnet_Users
aspnet_UsersInRoles
aspnet_WebEvent_Events

私は本当にあなたの答えを感謝します:)

4

1 に答える 1

2

where does the control save the information about the user logged in? and how can I access it?

You probably means here, where the login control saves the credential informations and let that user login and see the secure pages. All the informations are stored encrypted on the login cookie. Its only save on the database the last login, and on a counter for the total fails.

You can read it by:

var authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];

I want to restrict certain pages to certain users, and to builid dynamic pages based on different users. do I need to define roles and check for a user role?

Yes this is what you must do.

how can I define a login function myself which validates the user and redirect him to another page?

Here you can ether use the login control to interfere with the login process using the OnLoggingIn="OnLogginIn" and return e.Cancel = true; to cancel the login or true to let it continue.

Or you can create a new credential cookie, eg: How can I manually create a authentication cookie instead of the default method?

what more membership functions can I use to help me manage users and roles?

From the moment you know the database tables of the login module and the way they work, you can direct change them using SQL.

how can I define a login function myself which validates the user and redirect him to another page?

You can use the User Profile to store extra parameters and then use them on your code. Storing user preferences in Web Application

On the login control the OnLoggedIn="OnLoggedIn" is the final call that you can read that parametre and send the user to the correct page.

于 2013-04-30T13:53:44.217 に答える