我正在使用sql成员资格提供程序处理Web应用程序。 我已在SQL中为用户映射角色,并且正确地将用户分配给角色。 以下代码工作正常。
protected void btnLogin_Click(object sender, EventArgs e)
{
if (Membership.ValidateUser(txtUserName.Text, txtPassWord.Text))
{
if (Roles.IsUserInRole(txtUserName.Text, "admin"))
Response.Redirect("~/Users/ViewUsers.aspx");
}
else
{
lblErrorMessage.Visible = true;
}
}
但我想在配置中执行所有访问拒绝逻辑。 以下代码不起作用。具有所有角色的用户无论其角色如何都会被重定向。
<location path="Users">
<system.web>
<authorization>
<allow roles="admin"/>
<deny roles="user"/>
</authorization>
</system.web>
请让我知道我做错了什么?
答案 0 :(得分:0)
您需要使用<deny users="*"/>
代替。请参阅MSDN文章示例。
答案 1 :(得分:0)
[Authorize(Roles = "Super Admin,Business Admin")]
答案 2 :(得分:0)
我必须设置formauthentication cookie来执行此操作,现在一切正常
string username = UsernameTB.Text;
FormsAuthentication.SetAuthCookie(username, false);