Как перенаправление работает в ASP.Net MVC?Общие сведения о перенаправлении в ASP.Net MVC
Я скопировал и модифицировал code bit from Scott Henselman's blog, который использует DotNetOpenId для входа через OpenID. Отладка, я считаю, что при выполнении этого сегмента кода:
// Stage 2: user submitting Identifier
var openId = Request.Form["openId"];
new OpenIdRelyingParty().CreateRequest(openId).RedirectToProvider();
throw new Exception("Should never get here");
Я никогда не добраться до пункта броска, а продолжить с перенаправлением. Как это работает?
Тогда, когда я получаю ответ от поставщика OpenId, я отладки через этот сегмент кода:
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
FormsAuthentication.RedirectFromLoginPage(response.ClaimedIdentifier, false);
// am I supposed to reach this line? What should I return here?
// (The method expects a View to be returned)
И я считаю, что призыв к FormsAuthentication.RedirectFromLoginPage() не вернется, и мне нужно вернуть что-то из действия. Что я должен здесь вернуться?
Я нахожу, что FormsAuthentication.RedirectFromLoginPage() не генерирует исключение, а выполнение продолжается после него. Что может быть причиной этого? – ripper234
Хммм ... в этом случае этот метод может установить свойство Response.RedirectLocation' и просто вернуть, что приведет к переадресации, но не к исключению, что позволит продолжить выполнение. –
Но чем же я должен вернуться из действия контроллера? – ripper234