【发布时间】:2021-07-22 05:17:03
【问题描述】:
我想在我的_layout.cshtml 中检查会话,它可以重定向到Login 页面,但它会无限循环
@using Microsoft.AspNetCore.Http
@inject Microsoft.AspNetCore.Http.IHttpContextAccessor HttpContextAccessor
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
window.onload = function () {
if ('@HttpContextAccessor.HttpContext.Session.GetString("username")' === '') {
location.href = "@Url.Action("Login", "Account")";
}
};
</script>
</head>
<body>
</body>
</html>
【问题讨论】:
-
location.href 会导致窗口重新加载,从而触发 onload 事件。新的重定向有一个空的用户名会话,这会不断导致您的页面重新加载,从而导致无限循环。
-
是的,这个逻辑应该被排除在登录页面运行。
标签: javascript c# asp.net-core razor