Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @using (Ajax.BeginForm("LogInUser", "api/User", new AjaxOptions { HttpMethod = "GET", OnComplete = "OnLogInCompleted", LoadingElementId = "loadingImage" }))
- {
- <fieldset class="login-form-box">
- <table>
- <tr>
- <td class="login-label-box">@Html.Label("Username")</td>
- <td class="login-label-box">@Html.Label("Password")</td>
- <td></td>
- </tr>
- <tr>
- <td >@Html.TextBox("username", null, new {@class = "login-inout"})</td>
- <td>@Html.Password("password", null, new {@class = "login-inout"})</td>
- <td><input type="submit" value="LogIn" /></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td>@Ajax.ActionLink("Register", "MainBodyContentPartial",
- new AjaxOptions() { UpdateTargetId = "contentBox", InsertionMode = InsertionMode.Replace,
- HttpMethod = "GET", OnComplete = "OnContentChanged" })</td>
- </tr>
- </table>
- </fieldset>
- }
- [HttpGet]
- [Route("LogInUser")]
- [System.Web.Mvc.RequireHttps]
- public User LogInUser(string username, string password)
- {
- if(username == null || password == null)
- {
- return null;
- }
- string hashedPassword = GetHashString(password);
- var selectedUser = DatabaseService.Inst.GetUserByUsernameAndPassword(username, hashedPassword);
- if(selectedUser == null)
- {
- return null;
- }
- FormsAuthentication.SetAuthCookie(username, true);
- if (!Roles.IsUserInRole(selectedUser.Role))
- {
- var userRoles = Roles.GetRolesForUser(selectedUser.Username);
- if (userRoles != null && userRoles.Any())
- {
- Roles.RemoveUserFromRoles(selectedUser.Username, userRoles);
- }
- Roles.AddUserToRole(selectedUser.Username, selectedUser.Role);
- }
- selectedUser.Password = "";
- return selectedUser;
- }
- function OnLogInCompleted(result) {
- displayWaiting();
- var loggedUser = result.responseJSON;
- if (!loggedUser) {
- DisplayStatusMessage("Login failed.");
- return;
- }
- DisplayStatusMessage("You are logged in as " + loggedUser.Username);
- $('#MainLoginFormBox').load(url + '/Content/LoggedUserContentPartial');
- $('#navigationMenu').load(url + '/Content/UserMenuContentPartial');
- $('#contentBox').load(url + '/Content/UserHomeContentPartial');
- OnContentChanged();
- hideWaiting();
- return;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement