net mvc 3 application..net mvc form login url перенаправление
У меня проблема с формой входа.
Когда я пытаюсь войти в систему с моим администратором, в первый раз журналы ошибок отсутствуют, но если я попытаюсь войти в систему с любой другой проблемой, мне нужно войти в систему через вторую страницу входа.
первой форма уры это:
с любым другим использованием для моего дб администратора пользователя, кроме я должен попробовать один раз, а затем получить этот URL
http://HOST.com/Login/Login?ReturnUrl=%2f
редиректа и повторите попытку, затем он вступает в систему правильно. Случается каждый раз.
это мой код формы для формы сечения в моем web.config
<authentication mode="Forms">
<forms loginUrl="Login/Login" timeout="200000" slidingExpiration="true">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
Благодарим Вас за любые предложения
Войти Форма файла:
using System;
using System.Web.Mvc;
using System.Web.Security;
using SAMPLE.Models;
using SAMPLE.Helpers;
using System.Web;
using System.Linq;
namespace SAMPLE.Controllers
{
public class LoginController : Controller
{
public ActionResult Login(string username, string password, string returnUrl)
{
if (!String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(password))
{
if (UserAccount.IsValid(username, password))
RedirectFromLoginPage(username, returnUrl);
else
ViewData["LoginMessage"] = "Incorrect username or password.";
}
return View();
}
public ActionResult Logout()
{
FormsAuthentication.SignOut();
return RedirectToAction("Login", "Login");
}
private void RedirectFromLoginPage(string username, string returnUrl)
{
FormsAuthentication.SetAuthCookie(username, false);
var userType = 0;
var user = UserAccount.SingleOrDefault(x => x.Username == username.ToLower());
if(user!=null)
userType = user.UserType;
if (userType == 2)
{
Response.Redirect("/Usrmgmt");
}
else
{
var privileges = SAMPLE.Helpers.SAMPLEContext.Privileges;
if ((privileges & PrivilegeConstants.Home) == PrivilegeConstants.Home)
Response.Redirect("/");
else if ((privileges & PrivilegeConstants.Budgets) == PrivilegeConstants.Budgets)
Response.Redirect("/Budget");
else if ((privileges & PrivilegeConstants.Estimates) == PrivilegeConstants.Estimates)
Response.Redirect("/Estimate");
else if ((privileges & PrivilegeConstants.EstimageCatalogue) == PrivilegeConstants.EstimageCatalogue)
Response.Redirect("/Labour");
else if ((privileges & PrivilegeConstants.CRM) == PrivilegeConstants.CRM)
Response.Redirect("/CRM");
else if ((privileges & PrivilegeConstants.JobStatus) == PrivilegeConstants.JobStatus)
Response.Redirect("/JobStatus");
else if ((privileges & PrivilegeConstants.UserManage) == PrivilegeConstants.UserManage)
Response.Redirect("/Administration");
else
Response.Redirect("/");
}
//}
}
}
}
это так, как это работает: У меня есть пользователь и передать я использую, что берет меня на странице/ursmgmt. Эта страница - моя супер-админ-страница. Я создаю компании здесь. Когда я создаю новую компанию, я создаю администратора для этой компании. поэтому компания использует эту регистрационную информацию и регистрируется в своем приложении и может настроить дополнительных пользователей на своей странице администрирования пользователей. – GTITC
Пользователь, которого я создал как супер администратора, а также любые другие пользователи, создаваемые компанией для своей компании, имеют тип пользователя = 0. Первый пользователь, которого я создаю/администратор компании, не имеет никаких прав. Привилегии устанавливаются администратором компании на странице администрирования пользователей. поэтому работает так, чтобы убедиться, что я понятен: 1) Я регистрирую пароль пользователя «admin»: «admin», это приводит меня к странице создания супер-администратора. – GTITC
2) Я создаю новую компанию под названием A1Company и настрою admin для этой компании как A1CompanyAdmin. 3) A1CompanyAdmin регистрируется в приложении и переходит на страницу управления пользователями и создает нового пользователя «A1CompanySalesUser», затем дает привилегии (отметки, на которых страницы из 5 страниц доступны пользователю, поэтому просто нажимает на одну или все страницы. У A1CompanySalesUser и A1CompanyAdmin оба пользователя имеют тип = 0, это может быть проблемой с типом или привилегиями пользователя? – GTITC