MVC3 перенаправление при первом входе - PullRequest
0 голосов
/ 08 декабря 2011

Используя бритву MVC3, я хочу перенаправить пользователя на firstlogin в ClubController. Я использую провайдера членства по умолчанию и провайдера профиля. Я установил логическое значение isNewUser в true при регистрации. Код ниже, но кажется, что логика не в порядке. Я новичок и мне нужна помощь.

    [HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                var userProfile = ProfileBase.Create(model.UserName);
                var FirstTime = userProfile.GetPropertyValue("isNewUser");
               if (FirstTime == true)
                {
                    return RedirectToAction("Create", "Club");
                }
                else
                {

                    if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
                    {
                        return Redirect(returnUrl);
                    }
                    else
                    {

                        return RedirectToAction("Index", "Home");
                    }

                    {
                        ModelState.AddModelError("", "The user name or password provided is incorrect.");
                    }

            // If we got this far, something failed, redisplay form
            return View(model);
        }

Я выполнил шаги на Как отследить первый вход пользователя в MVC3? . Любая помощь будет очень ценится

Ответы [ 3 ]

0 голосов
/ 09 декабря 2011

Вы уверены, что FirstTime является логическим значением, а не строкой?Вы можете изменить свой оператор if, чтобы убедиться, что

if(Convert.ToBoolean(FirstTime))....
0 голосов
/ 10 декабря 2011

Наконец, вот как мне удалось добиться успеха.Я сделал модель входа в систему, как показано ниже

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
  if (ModelState.IsValid)
  {
    if (Membership.ValidateUser(model.UserName, model.Password))
    {
      FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
      var profile = ProfileBase.Create(model.UserName);
      var FirstTime = profile.GetPropertyValue("isNewUser");
      var chk=FirstTime; 
      if (chk.Equals(true))
        return RedirectToAction("Create","Club");
      else
        if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
            && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
          return Redirect(returnUrl);
        else
          return RedirectToAction("Index", "Home");
    }
    else
      ModelState.AddModelError("", "The user name or password provided is incorrect.");
  }

И установил файл конфигурации следующим образом

<profile>
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
  <properties>
    <add name="isNewUser" type="System.Boolean"/>
  </properties>
</profile>
0 голосов
/ 09 декабря 2011

Снимите {и} до и после строки состояния модели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...