用户单击按钮时重定向到登录页面

时间:2011-05-23 03:47:48

标签: c# asp.net security webforms

我希望我的匿名用户能够在整个网站中导航,但如果他按下网站内的任何按钮,他应该被重定向到登录页面。我如何实现这一目标?

我是否应该在FormAuthentication类中使用函数?

2 个答案:

答案 0 :(得分:1)

不幸的是,您需要为此编写自己的自定义代码(当然,您可以使用ASP.NET基础结构)。概要将是

  1. 配置表单身份验证,以便将所有页面标记为不安全(即允许匿名访问)
  2. 点击任意按钮,检查用户是否经过身份验证,如果没有,则重定向到登录页面(使用FormsAuthentication.RedirectToLoginPage方法)
  3. 从更好的使用体验,而不是在#2中进行回发,我将生成一个java脚本,如果需要将弹出登录提示(模态对话框)并通过ajax调用登录然后重新 - 提交表格。使用诸如jquery之类的库,您可以在表单上附加必要的脚本 - let到所有提交按钮(或标有特定类的按钮)。

答案 1 :(得分:1)

您可以通过web.config中的某些设置(例如。

)在文件中设置身份验证

这将允许您浏览所有页面。 现在,对于页面中的任何事件,如按钮单击或其他内容,您可以编写一个功能,您可以在其中检查成员提供者的身份验证和授权 像

using System.Security.Authentication

Public void IsValidUser()
{
   if(User.Identity.Name!=string.empty)
     Response.Redirect("~login.aspx");
   else
   {
      if(!User.Identity.IsAuthenticated)
        Response.Redirect("~login.aspx");
   }
}