C# ASP.net登录控件帮助
我正在VisualStudio2008中使用E提供的登录控件。我试图创建一些failuretext并在登录错误时显示它,但我永远无法显示失败文本。谁能给我一个关于这个控件如何工作的简要介绍 为什么失败文本不会显示出来?谢谢你的帮助 下面是一些简单的代码C# ASP.net登录控件帮助,c#,asp.net,visual-studio-2008,C#,Asp.net,Visual Studio 2008,我正在VisualStudio2008中使用E提供的登录控件。我试图创建一些failuretext并在登录错误时显示它,但我永远无法显示失败文本。谁能给我一个关于这个控件如何工作的简要介绍 为什么失败文本不会显示出来?谢谢你的帮助 下面是一些简单的代码 protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) { try {
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
try
{
//user object that does the user validation
_clsUser = new AdvantageUI.Classes.User();
_clsUser.ValidateLoginAttempt(lgnLogin.UserName, lgnLogin.Password); //if login failed exception thrown with error text.
e.Authenticated = true;
//for use on additional pages as we will want to make sure user is valid and logged in.
Session.Add("User", _clsUser);
}
catch (Exception ex)
{
lgnLogin.FailureText=ex.Message;
//lgnLogin.DataBind();
}
Response.Redirect("ACBAdmin.aspx");
}
您正在尝试/捕获后重定向。使用
try…catch
异常来处理您的控制流不是一个好的做法。从来没有理由使用名为Classes
的名称空间,因为就名称空间而言,我是懒惰的。谢谢你指出这些。至于不使用try…catch。可能发生3个错误。当其中一个事件发生时,您是否可以使用case语句或其他方法来控制流程?我尝试在try-catch之前在失败文本中添加一些虚假的垃圾,但它没有显示出来?这只是一个一般性的观察。我不熟悉AdvantageUI
库,但是如果validateLogInTest
返回一个布尔值,则应使用if..else
检查该值。如果您知道有三个异常,那么在使用catch all
异常之前,应该分别捕获每个异常。这不是强制性的,只是对更干净代码的一个建议:)我不确定这对填充failuretext属性有何影响,但我将其移动到了try catch中,当登录尝试失败时仍然没有failuretext?