在web.config文件中使用授权时将重定向回登录屏幕

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在web.config文件中使用授权时将重定向回登录屏幕相关的知识,希望对你有一定的参考价值。

我在尝试解决此问题时遇到一些麻烦。我有一个名为“ Admin”的文件夹,在该文件夹中,我有两个Web表单和web.config文件。我已经创建了用户并将其添加到他们的角色中。

web.config文件中,我具有:

<authorization>
  <allow roles="Administrators" />
  <deny users="*" />
</authorization>

当我以管理员身份(具有管理员角色)登录时,我被重定向到“索引”页面(所有方法均有效)。但是,当从那里浏览到管理页面时,我被重定向到登录屏幕,但是我在Administrators文件中添加了角色web.config

这是我的login.aspx.cs

protected void btnLoginButton_Click(object sender, EventArgs e)
    
        if (Membership.ValidateUser(UserName.Text, Password.Text))
        
            Session["UserName"] = this.UserName.Text.Trim();
            Response.Redirect("~/Index.aspx");
        
        // If we reach here, the user's credentials were invalid
        InvalidCredentialsMessage.Visible = true;
    

然后在我的根web.config文件中:

<system.web>
<authentication mode="Forms">
</authentication>
<membership defaultProvider="SqlProvider">
  <providers>
    <!--Add a customized SqlMembershipProvider -->
    <add name="SqlProvider"
    type="System.Web.Security.SqlMembershipProvider"
    connectionStringName="DefaultConnection"
    enablePasswordRetrieval="false"
    enablePasswordReset="true"
    requiresQuestionAndAnswer="false"
    applicationName="SecurityTutorials"
    requiresUniqueEmail="true"
    passwordFormat="Hashed"
    maxInvalidPasswordAttempts="5"
    minRequiredPasswordLength="7"
    minRequiredNonalphanumericCharacters="1"
    passwordAttemptWindow="10"
    passwordStrengthRegularExpression=""/>
  </providers>
</membership>
<roleManager enabled="true" 
             defaultProvider="AspNetSqlRoleProvider" 
             cacheRolesInCookie="true"
             createPersistentCookie="false"
             cookieProtection="All">
  <providers>
    <clear />
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="/" connectionStringName="DefaultConnection" />
    <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>

</roleManager>

然后在Admin文件夹的两个Web表单中,我具有以下内容:

if (!Page.IsPostBack)
        
            if (Session["UserName"] != null)
            
                this.WelcomeBackMessage.Text = string.Format("Welcome 0", Session["UserName"].ToString());
            

我不确定这是怎么回事,需要帮助吗?

谢谢

答案

我想知道它是否应该是Administrator,单数...

以上是关于在web.config文件中使用授权时将重定向回登录屏幕的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 nmake 将重定向符号 (>>) 写入文本文件

.NET:从域和子文件夹重定向到新域,保留路径和查询字符串,在 web.config 中使用 httpredirect

asp.net web.config中基于多个角色的文件夹授权

如何在 web.config 文件中为特定文件类型创建重定向?

如何在不更改web.config文件中的URL的情况下重定向域?

将重定向发送到 JSP 中的相对路径?