它可以借助标准 ASP.NET 功能来完成。我将尝试建议一种可能的解决方案。首先您需要设置“Web 表单身份验证”ASP.NET 身份验证 http://msdn.microsoft.com/en-us/library/aa291347%28v=vs.71%29.aspx,你应该修改你的web.config。
<system.web>
<authentication mode="Forms">
<forms name="Custom" loginUrl="/login.aspx" />
</authentication>
</system.web>
然后您还需要在 web.config 中指定成员位置ASP.NET 授权 http://msdn.microsoft.com/ru-ru/library/8d82143t.aspx.
<location path="folders/memberN">
<system.web>
<authorization>
<allow roles="memberN"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
这将允许组“memberN”中的所有用户在“folders/memberN”路径下工作。
接下来我们需要添加会员资格 http://msdn.microsoft.com/ru-ru/library/1b9hw62f.aspx and 角色提供者 http://msdn.microsoft.com/ru-ru/library/ms164660.aspx到你的 web.config。基于 sql server 提供程序配置的成员资格和角色提供程序。
<configuration>
<connectionStrings>
<add name="SqlServices"
connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial
Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<roleManager defaultProvider="SqlProvider"
enabled="true"
cacheRolesInCookie="true"
cookieName=".ASPROLES"
cookieTimeout="30"
cookiePath="/">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="SqlServices"
applicationName="SampleApplication" />
</providers>
</roleManager>
<membership
defaultProvider="SqlProvider"
userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlProvider" />
<add name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
最后我们需要在数据库中创建特殊的表(更多细节 https://web.archive.org/web/20211020203214/https://www.4guysfromrolla.com/articles/040506-1.aspx).
%WINDOWS%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe -S <server> -E -d <database> -A all