ASP. NET 2.0 member management and role management (continued)

Source: Internet
Author: User

1. Member Services

Use ASP. NET web site administration tool to create and configure website permissions. In http: // localhost/<Project Name>/webadmin. axd, the tool generates a web. config file to store member information.

ASP. net2.0 also provides two classes for member management: Membership and membershipuser, which are located in the system. Web. Security namespace. The former contains a series of static methods for creation, deletion, modification, verification, and other operations. The latter is a class that describes the login information of a single user. Each instance is a collection of login information.

Some membership methods: (you can refer to the naming conventions)

Createuser
Deleteuser
Generatepassword
Getalluser
Getuser
Updateuser
Validateuser
Some membershipuser methods:

Changepassword
Changepasswordquestionandanswer
GetPassword
Resetpassword
Some attributes of membershipuser: (you can see the name and description)

Comment (used to store user-defined data)
Creationdate
Email
Lastlogindate
Lastpasswordchangeddate
Userid
Username

Some examples:

Create a new user
Membershipcreatestatus status;
Membershipuser user = membership. createuser (this. tb_username.text,
This. tb_password.text, this. tb_email.text, out status); // The output parameter status contains the User Creation result information, which can be further processed.

Change Password
If (this. isvalid)
{
Membershipuser user = membership. getuser ();

User. Email = This. tb_email.text;
User. Comment = This. tb_comment.text;
Membership. updateuser (User );

If (this. tb_oldpassword.text.length> 0 )&&
(This. tb_newpassword.text.length> 0 ))
{
User. changepassword (this. tb_oldpassword.text,
This. tb_newpassword.text );
}
}

All other user information can be stored in SQL Server or access. To store this information in SQL Server, use the aspnet_regsql.exe tool under <WINDIR> \ Microsoft. Net \ framework \ <version> to generate a database. For example

After the database is generated, make the following changes in the configuration file:

<? XML version = "1.0"?>
<Configuration>

<Connectionstrings>
<Add name = "localsqlserver"
Connectionstring = "Data Source = 127.0.0.1; Integrated Security = sspi"/>
</Connectionstrings>

<System. Web>
<Membership defaultprovider = "aspnetsqlprovider"/>
<Rolemanager enabled = "true" defaultprovider = "aspnetsqlprovider"/>
</System. Web>
</Configuration>

2. Role Management Service

Similar to member management, role management can also be performed through ASP. NET web site administration tool. Unlike Member Management, role management only has one class roles. That is to say, a role only exists as a string and does not have a role class to record its member information.

It provides a series of static methods for role operations. (Similarly, it is basically known by name)

Addusertorole
Createrole
Deleterole
Getrolesforuser
Getusersinrole
Isuserinrole
Removeuserfromrole
Because role management is disabled by default, make the following changes in the configuration file:

<Configuration>
<System. Web>
<Rolemanager enabled = "true"/>
</System. Web>
</Configuration>
You can also cache role information in cookies. To achieve this, you only need to make the following changes in the configuration file:
<Configuration>
<System. Web>
<Rolemanager enabled = "true" cacherolesincookie = "true"/>
<! -- Other attributes and default values:
Cookiename = ". aspxroles" // cookie name
Cookietimeout = "30" // cookie survival
Cookiepath = "/" // Cookie Path
Cookierequiressl = "false" // restrict the use of SSL for cookies
Cookieslidingexpiration = "true" // re-apply for a cookie that expires
Cookieprotection = "all"/> // cookie Protection Level
-->
</System. Web>
</Configuration>


Member Management
1. Membership class: Create and delete users, retrieve user emails, generate random passwords, and perform logon Verification
Create a new user:
Try {
Membership. createuser ("name", "password", "mail ");
}
Catch (membershipcreateuserexception E)
{
// Failed
Switch (E. statuscode)
{
Case membershipcreatestatus. duplicateusername:
Case membershipcreatestatus. duplicateemail:
Case membershipcreatestatus. invalidpassword:
Default:
}
}
Logon Verification:
If (membership. validateuser (username. Text, password. Text ))
Formsauthentication. redirectfromloginpage (username. Text,
Rememberme. checked); Method: createuser (create user) deleteuser (delete user) generatepassword (generate password immediately) getallusers (get user) getuser (View A User) updateuser (modify user) validateuser)
Ii. membershipuser class:
Description of a single registered user in Member Data Storage
Contains numerous attributes to obtain and set user information
Including methods to retrieve, change, and reset passwords
Return values through properties such as getuser and createuser
Attribute: Comment creationdate email lastlogindate lastpasswordchangeddate userid Username

Method: changepassword-questionandanswer GetPassword resetpassword
Pending logon permissions:
If (membership. validateuser (username. Text, password. Text )){
Membershipuser user = membership. getuser (username. Text );
User. Comment = "0"; // record the number of logins
Redirectfromloginpage (username. Text, rememberme. Checked );
}
Else {
Membershipuser user = membership. getuser (username. Text );
If (user! = NULL ){
String COUNT = convert. toint32 (user. Comment) + 1;
User. Comment = count. tostring ();
}
} Provided by SQL Server Program
<Configuration>
<System. Web>
<Membership defaultprovider = "aspnetsqlprovider"/>
</System. Web>
</Configuration> change the provider Configuration:
<Membership>
<Providers>
<Remove name = "aspnetsqlprovider"/>
<Add name = "aspnetsqlprovider"
Type = "system. Web. Security. sqlmembershipprovider, system. Web ,"
Connectionstringname = "remotesqlserver"
Enablepasswordretrieval = "false"
Enablepasswordreset = "true"
Requiresquestionandanswer = "false"
Applicationname = "/"
Requiresuniqueemail = "false"
Passwordformat = "hashed"
Description = "stores and retrieves membership data"
/>
</Providers>
</Membership> Configuration provider
The member Provider supports many configuration options. How do I store passwords (plaintext, hash, and encryption )? Can the password be restored? Must a user have a unique email address? It is represented by providing program class attributes and initialized in the configuration file.
Iv. role management
Method: addusertorole createrole deleterole getrolesforuser (view User Role) getusersinrole isuserinrole removeuserfromrole
Create a new role
If (! Roles. roleexists ("developers ")){
Roles. createrole ("developers ");
} Add a user to a role
String name = membership. getuser (). Username;
Roles. addusertorole (name, "developers"); configure web. config to enable the role
<Configuration>
<System. Web>
<Rolemanager enabled = "true"/>
</System. Web>
</Configuration> enable role Cache
<Configuration>
<System. Web>
<Rolemanager enabled = "true" cacherolesincookie = "true"/>
<! -- Other rolemanager attributes (and their defaults) include:
Cookiename = ". aspxroles" // cookie name
Cookietimeout = "30" // cookie lifetime
Cookiepath = "/" // Cookie Path
Cookierequiressl = "false" // restrict cookie to SSL?
Cookieslidingexpiration = "true" // renew expiring cookies?
Createpersistentcookie = "false" // issue persistent cookie?
Cookieprotection = "all"/> // cookie Protection Level
-->
</System. Web>
</Configuration> use the SQL Server Provider
<Configuration>
<System. Web>
<Rolemanager enabled = "true" defaultprovider = "aspnetsqlroleprovider"/>
</System. Web>
</Configuration>
Error message:
The minimum password length is 7, which must contain the following non-alphanumeric characters: 1

Solution:
The above message is mainly generated when you create a user. It is also generated when you create a user using the Asp.net website management tool.
There are two main methods to change the above rules:
1. All sites are changed.
Find the machine. config file.

<Membership>
<Providers>
<Add name = "aspnetsqlmembershipprovider"
Type = "system. Web. Security. sqlmembershipprovider, system. Web, version = 2.0.0.0, culture = neutral, publickeytoken = b03f5f7f11d50a3a"
Connectionstringname = "localsqlserver"
Enablepasswordretrieval = "false"
Enablepasswordreset = "true"
Requiresquestionandanswer = "true"
Applicationname = "/"
Requiresuniqueemail = "false"
Passwordformat = "hashed"
Maxinvalidpasswordattempts = "5"
Minrequiredpasswordlength = "7"
Minrequirednonalphanumericcharacters = "1"
Passwordattemptwindow = "10"
Passwordstrengthregularexpression = ""/>
</Providers>
</Membership>
It has two attributes: minrequiredpasswordlength, which indicates the longest password. The default value is 7, and minrequirednonalphanumericcharacters. The default value is 1, which indicates at least one non-letter character, you only need to change it to 0.

2. If you only want to modify the Web. config value for a website, it will be OK.
Modify the precedingCodeInsert it under <system. Web>.

If you want to change the password rule to "at least 6 Characters without special characters", as follows:
(Note: you must add <remove name = "aspnetsqlmembershipprovider"/>. Otherwise, an error message indicating "aspnetsqlmembershipprovider has been added" is displayed)

<Membership>
<Providers>
<Remove name = "aspnetsqlmembershipprovider"/>
<Add name = "aspnetsqlmembershipprovider"
Type = "system. Web. Security. sqlmembershipprovider, system. Web, version = 2.0.0.0, culture = neutral, publickeytoken = b03f5f7f11d50a3a"
Connectionstringname = "localsqlserver"

Enablepasswordretrieval = "false"
Enablepasswordreset = "true"
Requiresquestionandanswer = "true"
Applicationname = "/"
Requiresuniqueemail = "false"
Passwordformat = "hashed"
Maxinvalidpasswordattempts = "5"
Minrequiredpasswordlength = "6"
Minrequirednonalphanumericcharacters = "0"
Passwordattemptwindow = "10"
Passwordstrengthregularexpression = ""/>
</Providers>
</Membership>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.