1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
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
7 // http://www.apache.org/licenses/LICENSE-2.0
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
19 using Castle
.MonoRail
.Framework
;
21 using PetStore
.Service
;
24 /// Note that this controller extends the secure controller
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
;
37 /// Presents the login page.
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
51 /// When the login form is submitted, this action
52 /// is invoked. See the form action on the view
53 /// views/admin/login.vm
55 /// <param name="username"></param>
56 /// <param name="password"></param>
58 public void Authenticate(String username
, String password
)
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)
71 // Flash["error"] = ex.Message;
72 // RenderView("Login");