我只想在asp.net 3.5中的会话过期时将用户重定向到主页(Default.aspx)。 我只是通过网络用户控制来实现这一点,但钢铁却无法完美运行。所以我只想用web.config来做。
<authentication mode="Forms">
<forms loginUrl="~/SignIn.aspx" protection="All" timeout="2880" path="/" />
</authentication>
此技术是否适用于.net 3.5框架应用程序。
答案 0 :(得分:4)
对于无主页:
你可以试试这个。protected void Page_Load(object sender, EventArgs e)
{
if (System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
if (!IsPostBack)
{
}
}
else
{
Response.Redirect("Default.aspx", false);
}
}
在每个网页中使用此逻辑
如果使用母版页
在masterpage.cs文件中使用上述逻辑
使用Web.Config:
<authentication mode="Forms">
<forms loginUrl="~/SignIn.aspx" protection="All" timeout="2880" path="/" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
答案 1 :(得分:3)
您可以在page_init上查看会话,如下所示
protected void Page_Init(object sender, EventArgs e)
{
CheckSession();
}
private void CheckSession()
{
if (Session["SessionID"] == null || !System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
{
Response.Redirect("Default.aspx");
}
}
答案 2 :(得分:3)
如果您使用表单身份验证,则无需编写任何自定义代码。对于会话超时设置由Framework本身提供。只需更改配置文件,如下所述:
<authentication mode="Forms">
<forms defaultUrl="~/Default.aspx"
loginUrl="~/Login.aspx"
slidingExpiration="true"
timeout="60" />
</authentication>
以上配置会在会话过期时将用户重定向到登录页面。
答案 3 :(得分:2)
我会为除SignIn.aspx
以外的所有网页表单使用母版页,并在母版页的init方法中使用它:
if((System.Web.HttpContext.Current.User == null) || !System.Web.HttpContext.Current.User.Identity.IsAuthenticated)
Response.Redirect("SignIn.aspx");