2011-03-09 60 views
0

我想知道为什么那个程序员使用了一个try块。那是一个有名的实践表单认证练习

try 
        { 
         FormsAuthentication.RedirectFromLoginPage(username, pass; 

        } 
        catch 
        { 
         string strURL = (null != Request.QueryString["ReturnURL"] && Request.QueryString["ReturnURL"] != "") ? Request.QueryString["ReturnURL"] : "Default.aspx"; 

         FormsAuthentication.SetAuthCookie(username, pass); 

         Response.Redirect(strURL); 
        } 

感谢

回答

0

方法可以抛出。这是它的一部分:

// .... 

if (CookiesSupported || IsPathWithinAppRoot(current, returnUrl)) 
{ 
    // .... 
} 
else 
{ 
    if (!EnableCrossAppRedirects) 
    { 
     throw new HttpException(SR.GetString("Can_not_issue_cookie_or_redirect")); 
    } 
    // .... 
} 

// .... 

你可以在Reflector中自己看到它的全部内容。

0

ReturnURL是一个参数,指定登录后要去哪里。如果它缺少,你可能想把它处理为Default.aspx,就是这样。