net mvc 3 application。.net mvc formログインURLリダイレクト
私はログインフォームに問題があります。
adminユーザーとログオンしようとすると、最初に問題ログはありませんが、他の問題でログインしようとすると、2番目のログインページからログインする必要があります。
最初のフォームウルはこれです:私のDB管理ユーザー以外の他の用途に
私は1つの時間を試してみて、このURLを取得
http://HOST.com/Login/Login?ReturnUrl=%2f
リダイレクトし、もう一度やり直すと、正しくログインします。毎回起こります。
これは
<authentication mode="Forms">
<forms loginUrl="Login/Login" timeout="200000" slidingExpiration="true">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
は、任意の提案
ログインフォームファイルをありがとう、私のweb.configファイルでフォームのセクションのための私のフォームコードです:あなたのweb.configファイルを変更してください
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と呼ばれる新しい会社を作り、 A1CompanyAdminとしてその会社の管理者ユーザー。 3)A1CompanyAdminはアプリケーションにログインし、ユーザー管理ページに移動して新しいユーザー "A1CompanySalesUser"を作成し、権限を与えます(ユーザーがアクセスできる5ページのうちどのページにアクセスするかをチェックして、1つまたはすべてのページをクリックします)。 A1CompanySalesUserとA1CompanyAdminの両方ともユーザータイプ= 0を持っていますか?ユーザータイプまたは特権に問題がある可能性がありますか? – GTITC