缓存丢失时将用户重定向到登录的最佳方法是什么? 目前我正在这样做:
if (Session["Id"] == null)
{
return RedirectToAction("Login", "Home");
}
但是使用这种方法,它将此代码放入每个函数中,是否有其他方法可以在整个程序中执行此操作?我尝试通过从web.config执行此操作进行搜索,但没有结果。
假设您使用的是基于表单的身份验证并仅允许授权用户访问,那么这可以通过在 web.config 中进行更改来实现
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="default.aspx" name=".YourApplication" timeout="60" cookieless="AutoDetect" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
loginUrl 属性告诉服务器在用户未登录时将用户定向到何处,defaultUrl 属性告诉服务器在用户登录后将用户定向到何处。
拒绝用户="?告诉服务器拒绝任何未经身份验证的用户,并将他定向到loginUrl页面
在登录页面的代码隐藏中,检查插入的凭据后需要这样的东西:
FormsAuthentication.RedirectFromLoginPage(userName.Text, True)
参考
private const string GlobalAuthKey = "GlobalAuthTime";
您可以在身份验证列表中插入所有身份验证用户信息。
HttpRuntime.Cache.Insert(GlobalAuthKey, authList);
然后 获取缓存 :
var authList = HttpRuntime.Cache.Get(GlobalAuthKey) as List<AuthInfo> ?? new
List<AuthInfo>();
之后,您检查此特定用户登录信息,并通过此愿望条件强制用户。希望你明白。