我有一个asp.net会员资格授权问题,我配置了我的主要网络配置:
<connectionStrings>
<add name="xxx" connectionString="Data Source=; Initial Catalog=; Integrated Security=;" providerName="System.Data.SqlClient" />
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer"
connectionString="Data Source=; Initial Catalog=; Integrated Security=;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<roleManager enabled="true" defaultProvider="MyProvider">
<providers>
<add name="MyProvider"
type="System.Web.Security.SqlRoleProvider"
connectionStringName="Devices"
applicationName="MembersTable" />
</providers>
</roleManager>
<membership defaultProvider="MyProvider">
<providers>
<add name="MyProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="" />
</providers>
</membership>
<authentication mode="Forms">
<forms loginUrl="Denied.aspx" name=".ASPXFORMSAUTH"/>
</authentication>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>`
在指定的文件夹中,我的配置看起来像
<configuration>
<location>
<system.web>
<authorization>
<allow roles="role1"/>
<deny users="*" />
</authorization>
</system.web>
</location>
</configuration>
但登录后我无法访问文件夹文件,它会在Denied.aspx
页面上返回给我
我使用Membership.ValidateUser
方法验证用户,并使用Response.Redirect
调用页面。这是否足够,或者我需要一种不同的方式来请求受保护的页面
if (
Membership.ValidateUser(this.txtUsername.Text, this.txtPassword.Text))
{
Response.Redirect("/tempUser/Role1Page.aspx");
}
else {
Response.Redirect("Denied.aspx");
}
答案 0 :(得分:0)
听起来用户不在角色中或者角色配置不当(尽管它在你的片段中看起来是正确的)。您可以通过查看网站配置工具(项目菜单,ASP.Net配置,安全性)或代码User.IsInRole("rolename")
来检查这一点。