将用户重定向到缓存丢失的登录页面的最佳方法



缓存丢失时将用户重定向到登录的最佳方法是什么? 目前我正在这样做:

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>();

之后,您检查此特定用户登录信息,并通过此愿望条件强制用户。希望你明白。

最新更新