Added RedirectUsingNamedRoute
[castle.git] / Samples / Castle / PetStore.Web / Controllers / Admin / AdminController.cs
blob752aa08166fe20635d89031ec85019051294f57f
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace PetStore.Web.Controllers.Admin
17 using System;
19 using Castle.MonoRail.Framework;
20 using PetStore.Model;
21 using PetStore.Service;
23 /// <summary>
24 /// Note that this controller extends the secure controller
25 /// </summary>
26 [Layout("admin")] // see views/layouts/admin.vm
27 public class AdminController : AbstractSecureController
29 private readonly IAuthenticationService authenticationService;
31 public AdminController(IAuthenticationService authenticationService)
33 this.authenticationService = authenticationService;
36 /// <summary>
37 /// Presents the login page.
38 /// </summary>
39 /// <remarks>
40 /// As this controller extends the secure controller, which
41 /// adds a before-action filter, we must use the
42 /// SkipFilterAttribute so a non-authenticated user
43 /// can perform the action
44 /// </remarks>
45 [SkipFilter]
46 public void Login()
50 /// <summary>
51 /// When the login form is submitted, this action
52 /// is invoked. See the form action on the view
53 /// views/admin/login.vm
54 /// </summary>
55 /// <param name="username"></param>
56 /// <param name="password"></param>
57 [SkipFilter]
58 public void Authenticate(String username, String password)
60 //try
62 User user = authenticationService.Authenticate(username, password);
64 // VERY NAIVE, but for simplicity's sake...
65 Response.CreateCookie("usertoken", user.Id.ToString());
67 Redirect("admin", "index");
69 // catch(Exception ex)
70 // {
71 // Flash["error"] = ex.Message;
72 // RenderView("Login");
73 // }
76 public void Index()