在项目中利用SQL Server来创建基于角色的身份验证模式
在做项目的时候,我们通常要求有不同角色的身份登录系统,在.net中系统自身带了一套身份验证模式。
首先我们利用 .net自带的命令提示符,在SQL Server中创建一个叫myHomerMemberShip的数据库。

在命令提示符中,输入: aspnet_regsql.exe 然后根据提示,进行一步一步的创建。
创建好的数据库中应该包含如下的数据表:

这样我们就可以利用.net自带的那套身份验证模式要创建程序了。
接着,我们在我们的项目中
点击“myHomer”这个项目,然后在右上角点“asp.net配置”
在这个里面我们会进入到“asp.net网站管理工具”中

在这里我们要进行一些设置主要是关于安全方面的设置,我们可以在这里创建两个角色和两个用户

这样做的目的是为了防止过会在配置"web.config"这个文件的时候不容易出错,我曾试着直接配置web.config,但是后来转到这里配置的时候,报出部分的错误,所以为了方便起见,我们可以直接在这里配置掉部分的设置。

在这里配置好以后,我们就要配置web.config这个文件。
在web.config 文件中配置
这个是数据的连接,应该不用多介绍
这里我们假设系统中存在着cntvs_admin和bank这两个文件夹,而这两个文件夹只允许角色为“后台用户”的进入,其它角色的我们不允许进入。
当然,为 了使这个角色的配置起作用,我们还要配置下面的两个节点
大概的配置情况就是这样了,关于web.config中的详细配置情况可以看http://www.cnblogs.com/Caceolod/articles/793203.html这里有更多详细的说明
首先我们利用 .net自带的命令提示符,在SQL Server中创建一个叫myHomerMemberShip的数据库。

在命令提示符中,输入: aspnet_regsql.exe 然后根据提示,进行一步一步的创建。
创建好的数据库中应该包含如下的数据表:

这样我们就可以利用.net自带的那套身份验证模式要创建程序了。
接着,我们在我们的项目中

在这个里面我们会进入到“asp.net网站管理工具”中

在这里我们要进行一些设置主要是关于安全方面的设置,我们可以在这里创建两个角色和两个用户

这样做的目的是为了防止过会在配置"web.config"这个文件的时候不容易出错,我曾试着直接配置web.config,但是后来转到这里配置的时候,报出部分的错误,所以为了方便起见,我们可以直接在这里配置掉部分的设置。

在这里配置好以后,我们就要配置web.config这个文件。
在web.config 文件中配置
这个是数据的连接,应该不用多介绍
<!--数据库连接字符串-->
<connectionStrings>
<add name="MyHomerMemberShipConnectStr" connectionString="Data Source=lele;Initial Catalog=MyHomerMemberShip;Persist Security Info=True;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>
<!--数据库连接字符串-->
<connectionStrings>
<add name="MyHomerMemberShipConnectStr" connectionString="Data Source=lele;Initial Catalog=MyHomerMemberShip;Persist Security Info=True;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>
<!--数据库连接字符串-->
这里我们假设系统中存在着cntvs_admin和bank这两个文件夹,而这两个文件夹只允许角色为“后台用户”的进入,其它角色的我们不允许进入。
<location path="cntvs_admin">
<system.web>
<authorization>
<deny users="?"/>
<allow roles="后台用户"/>
</authorization>
</system.web>
</location>
<location path="bank">
<system.web>
<authorization>
<deny users="?"/>
<deny roles="后台用户"/>
</authorization>
</system.web>
</location>
<system.web>
<authorization>
<deny users="?"/>
<allow roles="后台用户"/>
</authorization>
</system.web>
</location>
<location path="bank">
<system.web>
<authorization>
<deny users="?"/>
<deny roles="后台用户"/>
</authorization>
</system.web>
</location>
当然,为 了使这个角色的配置起作用,我们还要配置下面的两个节点
<membership defaultProvider="myHomerWebSiteMemberShipProvider">
<providers>
<add name="myHomerWebSiteMemberShipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyHomerMemberShipConnectStr" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="MyHomer_WEBSITE" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="myHomerWebSiteSqlRoleProvider">
<providers>
<add name="myHomerWebSiteSqlRoleProvider" connectionStringName="MyHomerMemberShipConnectStr" applicationName="MyHomer_WEBSITE" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
<providers>
<add name="myHomerWebSiteMemberShipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="MyHomerMemberShipConnectStr" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="MyHomer_WEBSITE" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/>
</providers>
</membership>
<roleManager enabled="true" defaultProvider="myHomerWebSiteSqlRoleProvider">
<providers>
<add name="myHomerWebSiteSqlRoleProvider" connectionStringName="MyHomerMemberShipConnectStr" applicationName="MyHomer_WEBSITE" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</providers>
</roleManager>
大概的配置情况就是这样了,关于web.config中的详细配置情况可以看http://www.cnblogs.com/Caceolod/articles/793203.html这里有更多详细的说明