利用微软的角色类生成角色信息,可以方便的对网页访问进行控制。直接在webconfig是配置就可以了。
如下配置
<connectionStrings>
<add
name="SqlBaseServer"
connectionString="server=PC201509152;uid=;pwd=;database=aspnetdb;"
providerName="System.Data.SqlClient"/>
<add
name="SqlServer"
connectionString="server=PC201509152;database=Products;uid=;pwd="
providerName="System.Data.SqlClient"/>
</connectionStrings>
上面的SqlBaseServer连接是生成Role类的。因此需要指定它的使用数据库。
在system.web节点内写入以下配置.它是说明使用角色管理时,使用下面的数据存储。
<roleManager enabled="true" cookieTimeout="15" defaultProvider="SqlProvider">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlBaseServer"
applicationName="/" />
</providers>
</roleManager>
下面的就重要了。可以通过配置来限制访问。下面的代码的意思是采用窗体验证,拒绝任何没有经过验证的访问。
<authentication mode="Forms"/>
<authorization>
<deny users="?"/>
</authorization>
另外也可以在<configSections>节点内,指定某个页面能被某角色访问。adimn.aspx就只能被系统管理角色访问,其它用户都不能访问。
<location path="Admin.aspx">
<system.web>
<authorization>
<allow roles="sysadmin"/>
<deny roles="*"/>
</authorization>
</system.web>
</location>
在最初使用时,由于没有数据库,因此需要执行一个工具。
在数据库中运行一些存储过程。这个存储过程是本来没有的。执行下面的程序。会生成一个aspnetdb的数据库。C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe
说明:无论是3.0还是3.5,都直接运行2.0中的应用程序。