在webconfig中<authentication mode="Forms">
<forms loginUrl="LOGIN.aspx" defaultUrl="MAIN_MNU.aspx" name="Page1" timeout="60" path="/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
这样设置的。
在页面 a.aspx中,有一个hyperlink链接用来下载文件的。url="dl.aspx?id=1"文件下载时弹出来一个文件对话框。打开,保存,取消。
在a页面不做任何处理等待过了60分钟后,点文件下载的连接,这个时候转移到了LOGIN.aspx
输入用户名和密码,点登陆这个时候 文件下载对话框弹出来了。不论打开,取消,还是保存。以后再点登陆还是弹出来文件对话框。反复如此。ps LOGIN.aspx 登陆功能是用 login控件实现的。
<forms loginUrl="LOGIN.aspx" defaultUrl="MAIN_MNU.aspx" name="Page1" timeout="60" path="/"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
这样设置的。
在页面 a.aspx中,有一个hyperlink链接用来下载文件的。url="dl.aspx?id=1"文件下载时弹出来一个文件对话框。打开,保存,取消。
在a页面不做任何处理等待过了60分钟后,点文件下载的连接,这个时候转移到了LOGIN.aspx
输入用户名和密码,点登陆这个时候 文件下载对话框弹出来了。不论打开,取消,还是保存。以后再点登陆还是弹出来文件对话框。反复如此。ps LOGIN.aspx 登陆功能是用 login控件实现的。
这时候 再点会到login页面 用户再次登录之后 先判断一下session是否有值。 有值直接转向那页 应该会直接弹出下载框
没有值正常转向
hyperlink链接用来下载文件的。url="dl.aspx?id=1" 不要用直接用超级链的方式。
用服务器端注册脚本的方式来做。这样应该可以解决这个问题。
dl.aspx 这个文件里面没有用到什么session ,dl.aspx里的验证是什么,没有什么验证呀。就是根据id取出来
文件路径下载。
能不能在详细说一下。谢谢
方法参考下面代码:
protected void gv_List_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0)
{
LinkButton lkBtn = (LinkButton)e.Row.FindControl("lkbtn_Edit");
if (int.Parse(((DataRowView)e.Row.DataItem).Row["Data_State"].ToString()) == 0)
{
BtnDel.Enabled = true;
BtnDel.Attributes.Add("onClick", "return btnDel()"); lkBtn.Text = "修改";
lkBtn.Attributes.Add("onClick", "return btnEdit(\"" + ((DataRowView)e.Row.DataItem).Row.ItemArray[0].ToString() + "\")");
}
}
}
/// <summary>
/// 显示操作信息,并关闭窗口
/// </summary>
/// <param name="strMsg"></param>
private void ShowMsgCloseWindows(string strMsg)
{
ClientScript.RegisterStartupScript(this.GetType(), "Message", "<Script>alert(\"" + strMsg + "\");window.returnValue=\"ReLoad\";window.close();</Script>");
}
这里的dl.aspx的验证是指Session验证,如果你是用的现有的框架,页面不是继承System.Web.UI.Page,那么就把dl.aspx里的继承改成System.Web.UI.Page.
通常会在一个基础类里加上/// <summary>
/// 初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Init(object sender, EventArgs e)
{
if (Session["UserInfo"] == null)
{
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
Response.End();
}
}所以当dl.aspx继承了这个基础类的时候,会在Page_Init里验证Session是否失效。