利用vs2005登陆控件时,需要配置web.config的注意点

在vs2005中 .net提供了登陆组件,利用它我们可以快速地完成登陆,注册,找回密码等的功能!并且利用工具栏上的 网站->asp.net配置 我们也可以很容易的配置注册用户的角色等,为了完成这些任务 ,我们必须要在web.config中配置一些节点.

web.config

<configuration>

<location path="public/admin/">
    
<system.web>
        
<authorization>
            
<!--public/admin 文件夹只允许角色中包含 "后台管理" 的用户登陆-->
            
<allow roles="后台管理" />
                    
<deny users="*" />
        
</authorization>
    
</system.web>
</location>

<location path="public/admin/auto">
    
<system.web>
        
<authorization>
            
<!--public/admin/auto 文件夹只允许角色中包含 "汽车频道" 的用户访问,又因为这个admin文件夹只允许"后台管理" 的角色访问,所以要访问public/admin/auto文件夹,用户必须拥有"后台管理,汽车频道"这两个角色-->
            
<allow roles="汽车频道" />
                    
<deny users="*" />
        
</authorization>
    
</system.web>
</location>

<location path="public/admin/news">
    
<system.web>
        
<authorization>
            
<!--public/admin/news 文件夹允许角色中包含 "汽车频道,新闻频道" 的用户访问,又因为这个admin文件夹只允许"后台管理" 的角色访问,
                所以要访问public/admin/auto文件夹,用户必须拥有"后台管理,汽车频道"或"后台管理,新闻频道"这两个角色,当然也可以拥有三个角色,但是"后台管理"这个角色必须拥有,"后台管理,新闻频道" 可以两者选一,也可以都选
-->
            
<allow roles="汽车频道" />
            
<allow roles="新闻频道" />
                    
<deny users="*" />
        
</authorization>
    
</system.web>
</location>

<connectionStrings>
    
<add name="ConnStr" connectionString="Data Source=192.168.10.12;Initial Catalog=6ule;Persist Security Info=True;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>

<system.web>
    
<compilation debug="true"/>

    
<!--验证方式-->    
    
<authentication mode="Forms">
        
<forms name=".ASPX6uleWebSite" loginUrl="~/Login.aspx" timeout="300"/>
    
</authentication>

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

    
<roleManager enabled="true" defaultProvider="6uleWebSiteAspNetSqlRoleProvider">
        
<providers>
            
<add name="6uleWebSiteAspNetSqlRoleProvider" connectionStringName="ConnStr" applicationName="6ule_WEBSITE" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
        
</providers>
    
</roleManager>

</system.web>

</configuration>


<connectionStrings/>节点配置数据库的连接,这个我想大家都知道的,我就没有什么说的了.
9-21行配置了验证方式,关于这里的配置,主要是起用了角色分配,所以配置这些节点,其中<providers>中,name属性是自己定义的,后面的一些属性可以到Micrisoft网站上去找到,而这里的connectionStringName必须和<connectionStrings>节点中的一样,这样才能保证连接到数据库中,而不是在 app_data中增加数据.
posted @ 2007-06-22 15:53  海底的鱼  阅读(1355)  评论(1)    收藏  举报