确认“Individual Accounts”功能是否启用。在VS中,右键单击项目名称,选择“属性”,在“Web”选项卡中,检查“身份验证”下是否选择了“个人账户”。
确认是否在Web.config文件中指定了登录页面。在
其中“loginUrl”属性指定了登录页面的路径。
确认是否在Global.asax.cs文件中实现了“FormsAuthentication_OnAuthenticate”事件。在这个事件中,可以进行用户身份验证和重定向。示例代码如下:
protected void FormsAuthentication_OnAuthenticate(Object sender, FormsAuthenticationEventArgs e) { if (FormsAuthentication.CookiesSupported == true) { if (Request.Cookies[FormsAuthentication.FormsCookieName] != null) { try { //解密凭证 string username = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value).Name; //查询数据库验证用户信息 if (username != null) { //验证通过后,将身份标识信息保存在CurrentPrincipal中 e.User = new System.Security.Principal.GenericPrincipal( new System.Security.Principal.GenericIdentity(username, "Forms"), null); } } catch (Exception) { //删除凭证 FormsAuthentication.SignOut(); } } } }
在这个事件中,如果用户未登录,则可以使用“FormsAuthentication.RedirectToLoginPage”方法重定向到登录页面。