C# 基于位置的角色身份验证不起作用

C# 基于位置的角色身份验证不起作用,c#,web-config,authorization,asp.net-membership,asp.net-roles,C#,Web Config,Authorization,Asp.net Membership,Asp.net Roles,我正在使用sql成员资格提供商开发一个web应用程序。 我在SQL中为用户映射了角色,并且用户被正确地分配到了角色。 下面的代码可以正常工作 protected void btnLogin_Click(object sender, EventArgs e) { if (Membership.ValidateUser(txtUserName.Text, txtPassWord.Text)) { if (Role

我正在使用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>


请告诉我我做错了什么?

您需要改用
。请参阅带有示例的文章。

您尝试过这个吗?它会起作用的

 [Authorize(Roles = "Super Admin,Business Admin")]

我必须设置FormAuthenticationCookie来执行此操作,现在一切正常

string username = UsernameTB.Text;
FormsAuthentication.SetAuthCookie(username, false);

我应该在哪里添加它?您可以根据需要将它放在getmethod之前或控制器类之前。它的
asp.net
,而不是
asp.net mvc
没有控制器。