[英]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>
我有两个问题:
在我的管理路径中,我只希望管理员用户具有访问权限,但我找不到执行此操作的方法。 如何使只有管理员用户可以访问?
即使我尝试使用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.