Quantcast asp.net role membership provider phần 2

asp.net role membership provider phần 2

by Neon Quach 7. Tháng Tư 2010 02:34

Đây là bài viết nằm trong tập bài viết về asp.net role membership.
asp.net role membership provider phần 1

Trong phần 1 chúng ta đả làm quen với việc tạo asp.net membership database, trong phần 2 này chúng ta sẻ bắt đầu việc tạo user, login, logout và display user sau khi login thành công.

Vì do chúng ta đả tạo membership database trước nên bước đầu tiên chúng ta phải cấu hình connection string và membership.

  <connectionStrings>

    <add name="aspnetdbcon" connectionString="Data Source=localhost\sqlexpress;Initial Catalog=aspnetdb;uid=sa;pwd=111111"/>

  </connectionStrings>

Cấu hình chế độ chứng thực:

    <authentication mode="Forms">

      <forms loginUrl="~/login.aspx" timeout="2880"/>

    </authentication>

Config membership:

    <membership>

      <providers>

        <clear/>

        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="aspnetdbcon" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression="" applicationName="/"/>

      </providers>

    </membership>

Trong đó:

connectionStringName: tên của connection string (string)

enablePasswordRetrieval: Có hổ trợ chức năng nhận lại password (true/false)
enablePasswordReset: Cho phép reset password (true/false)
requiresQuestionAndAnswer: Có buộc nhập câu hỏi và câu trả lời bảo mật hay không
requiresUniqueEmail: Có bắt buộc 1 địa chỉ email cho 1 user hay không?
passwordFormat: Định dạng của password (Hashed, SHA1, Clear)
maxInvalidPasswordAttempts: Số lượng cho phép nhập sai password, ví dụ = 5, thì sau 5 lần đăng nhập thất bại, user phải đợi tới 15’ sau mới có thể đăng nhập lại.
minRequiredPasswordLength: Số lượng tối đa của mật khẩu

minRequiredNonalphanumericCharacters: Số lượng ký tự đặc biệt cho phép.
passwordAttemptWindow: Mặc định là 10’ là khoảng cách giửa lần đăng nhập thất bại đầu tiên và lần cuối cùng, nếu lớn hơn 10’ thì user sẻ bị log.
passwordStrengthRegularExpression: Expression cho password.
applicationName: Tên của ứng dụng (default là root /)


Bắt đầu tạo user

Từ version 2.0 trở đi thì ASP.NET cung cấp 1 số control cho việc tạo user, đăng nhập, quên mật khẩu, thay đổi mật khẩu (Create User Wizard, Login, ChangePassword…)

Để cho phép tạo mới user, chúng ta add 1 page mới và đặt tên là createuser.aspx và kéo control CreateUserWizard vào set thuộc tính ContinueDestinationPageUrl="~/login.aspx"

        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server"

 

            ContinueDestinationPageUrl="~/login.aspx">

            <WizardSteps>

                <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">

                </asp:CreateUserWizardStep>

                <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">

                </asp:CompleteWizardStep>

            </WizardSteps>

        </asp:CreateUserWizard>

Ở màng hình create user wizard, chúng ta không thấy textbox nhập câu hỏi bảo mật và câu trả vì trong file web.config chúng ta không enable nó requiresQuestionAndAnswer="false". Sau khi create user xong chúng ta nhấn Continue chúng ta sẻ được chuyển sang trang login, nơi mà ta sẻ thực thi chức năng đăng nhập.

Tạo trang login.aspx và kéo Login control, ở đây tình huống là khi user chưa đăng nhập thì chúng ta hiển thị login control, ngược lại nếu user đả đăng nhập rồi và quay lại trang login thì chúng ta hiển thị message welcome + name chẳng hạn.

Chúng ta có thể để dàng làm được nhờ vào LoginView control, Click vào smart tag của LoginView chúng ta có thể thấy 2 template: AnonymousTemplate và  LoggedInTemplate.

 


Ở mode AnonymousTemplate chúng ta thêm Login control và ở mode LoggedInTemplate chúng ta thêm loginstatus và loginname, loginstatus là control sẻ hiển thị trạng thái của user đả login hay chưa, nếu login rồi thì nó sẻ hiển thị logout, và ngược lại, còn loginname nó sẻ hiển thị tên của user hiện tại login.

History version: 2010-04-07 02:34 first release

Tags: , , , ,


Categories: asp.net | net framework | open source | vs .net

blog comments powered by Disqus

Powered by BlogEngine.NET 2.8.2.1 - Eco Theme by n3o Web Designers