所以我基本上是一个遗留应用程序。我有一个可用的登录页面,并在登录时根据用户角色重定向...到目前为止一切顺利。但是当用户点击他们被重定向的页面时,IsInRole方法什么都没有,并将它们重定向到登录页面。
在登录页面上我有:
if (Membership.ValidateUser(nameTest, passwordLogIn.Text))
{
if (Roles.IsUserInRole(nameTest, "Admin"))
Response.Redirect("/admin.aspx");
else if (Roles.IsUserInRole(nameTest, "Manager"))
Response.Redirect("/admin.aspx");
else if (Roles.IsUserInRole(nameTest, "User"))
Response.Redirect("/mydonations.aspx");
}
哪种方法很好......
在管理页面中我有:
if (!(User.IsInRole("Admin") || (User.IsInRole("Manager"))))
{
Response.Redirect("/Default.aspx");
}
哪个失败了...如果有人能够发现正在发生的事情,我将非常感激。我(不用说)看不出问题,更令人恼火的是其他成功运营项目的片段。
答案 0 :(得分:0)
由于 MemhershipProvider 是 SqlMembershipProvider ,您要使用 SqlRoleProvider RoleProvider ,而不是 WindowsTokenRoleProvider 。
<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
<providers>
<clear/>
<add connectionStringName="ApplicationServices"
applicationName="/"
name="AspNetSqlRoleProvider"
type="System.Web.Security.SqlRoleProvider, System.Web"/>
</providers>
</roleManager>