繁体   English   中英

ASP.NET表单身份验证

[英]Asp.net forms authentication

在我的web.config中,我有以下内容:

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="Login.aspx" protection="All" path="/" timeout="30"/>
    </authentication>
    <sessionState timeout="20" />
</system.web>

<location path="admin">
    <system.web>
        <authorization>
             <deny users="*"/>
             <allow users="admin"/>
        </authorization>
    </system.web>
</location>

我有两个问题:

  1. 在我的管理路径中,我只希望管理员用户具有访问权限,但我找不到执行此操作的方法。 如何使只有管理员用户可以访问?

  2. 即使我尝试使用Cookie,该用户也始终会注销,因此不应注销该用户。 在我的login.aspx中,当用户有效时,我具有以下代码:

     FormsAuthentication.RedirectFromLoginPage(user, CheckBoxPersistCookie.Checked); 

如何使用户保持登录状态?

尝试将<allow>行放在<deny>行上。

<system.web>
    <authentication mode="Forms">
                <forms loginUrl="Login.aspx" protection="All" path="/" timeout="30"/>
    </authentication>
    <sessionState timeout="20" />
</system.web>

<location path="admin">
    <system.web>
        <authorization>
             <allow users="admin"/>
             <deny users="*"/>
        </authorization>
    </system.web>
</location>

据我了解,您的身份验证Cookie中有30分钟超时,而会话Cookie中有20分钟超时。 似乎会话将在20分钟后过期,因此也将无法使用身份验证Cookie。
如果要让用户登录,这会有些棘手。我知道可以使用javascript和不可见的iframe来实现它。 例如,您需要每5分钟重新加载iframe。 您的会话将是实时的,本地cookie将更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM