مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

منال مجموعه

عضویت از 1393/10/21

مشکل در لاگین وقتی پروژه رو سرور قرار می گیره

  • پنجشنبه 11 مرداد 1397
  • 13:26
تشکر میکنم

سلام.وقت بخیر

ممنون که وقت میذارین جواب میدین

یه مشکل داشتم

پروژه ام رو که روی سرور گذاشتم موقع لاگین خطا زیر رو میده سرچ کردم به وب کانفیگ هم اضافه کردم تگ اما هنوز همون پیغام رو میده

The anti-forgery token could not be decrypted. If this application is hosted by a Web Farm or cluster, ensure that all machines are running the same version of ASP.NET Web Pages and that the <machineKey> configuration specifies explicit encryption and validation keys. AutoGenerate cannot be used in a cluster

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 12 مرداد 1397
  • 09:45

کد اکشن و ویو را قرار دهید 

کاربر سایت

منال مجموعه

عضویت از 1393/10/21

  • جمعه 12 مرداد 1397
  • 10:34

سلام آدرس سایت http://www.efit-co.com/  با نام کاربری و رمز عبور    username=admin , pass=123

لاگین نمیشه در صورتی که رو سیستم لوکال خودم مشکلی نداره

کد مربوط به اکشن:


   public ActionResult Login()
    {
      

        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    [AllowAnonymous]

    public ActionResult Login(RegisterUserViewModel loginInfoFromView)
    {
        
        if (this.IsCaptchaValid("Captcha is not valid"))
        {
            if (ModelState.IsValid)
            {
                var UserToLogin = db.Users.FirstOrDefault(p => p.UserName == loginInfoFromView.Username);
                if (UserToLogin != null && UserToLogin.IsActive)

                {
                    byte[] hashBytes = Convert.FromBase64String(UserToLogin.Password);
                    byte[] salt = Convert.FromBase64String(UserToLogin.SALT);

                    Array.Copy(hashBytes, 0, salt, 0, 16);

                    var pbkfd2 = new Rfc2898DeriveBytes(loginInfoFromView.Password, salt, 10000);

                    byte[] hash = pbkfd2.GetBytes(20);

                    for (int i = 0; i < 20; i++)
                    {
                        if (hashBytes[i + 16] != hash[i])
                        {
                           
                            TempData["LoginErrorMessage"] = true;
                            return RedirectToAction("Login", "Account");
                        }
                    }


            
                                    var menus = (from UsersRole in db.UsersRoles
                                        join MvcMenuRole in db.MvcMenuRoles on UsersRole.RoleID  equals  MvcMenuRole.RoleID
                                        join MvcMenu in db.MvcMenus on MvcMenuRole.MvcMenuID equals MvcMenu.MvcMenuID
                                        join role in db.Roles on MvcMenuRole.RoleID equals role.RoleID
                                        join menu in db.MainMenus on MvcMenu.MainMenuID equals menu.MainMenuID
                                         where (UsersRole.UserID==UserToLogin.UserID && (UsersRole.EndDate >DateTime.Now || UsersRole.EndDate==null))
                                                select new
                                                {
                                                    MvcMenu.MvcMenuID,
                                                    MvcMenu.SubMenu,
                                                    MvcMenu.Controler,
                                                    MvcMenu.Action,
                                                    MvcMenu.MainMenuID,
                                                    MvcMenu.MainMenu.TitleFa
                                                }).Distinct(); ;




                    var MenuList = new List <MenuMetaData>();
                    foreach (var item in menus)
                    {
                        MenuList.Add(new MenuMetaData()
                        {


                            MvcMenuID = item.MvcMenuID,
                            SubMenu = item.SubMenu,
                            Controler = item.Controler,
                            Action = item.Action,
                            MainMenuID = item.MainMenuID,
                            TitleFa = item.TitleFa


                        });
                    }



                   FormsAuthentication.SetAuthCookie(UserToLogin.UserName, false);

                    Session["MenuMaster"] = MenuList;

                    Session["personID"] = UserToLogin.PersonID;

                    Session["UserID"] = UserToLogin.UserID;

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

                   
                }



                else
                {
                    ModelState.AddModelError("Username", "حساب کاربری فوق فعال نشده است");

                    TempData["LoginErrorMessage"] = true;
                    return RedirectToAction("Login", "Account");
                }
            }
            return RedirectToAction("Login", "Account");
        }
        else
        {
            ModelState.AddModelError("CaptchaInputText", "لطفا تصویر امنیتی را درست وارد نمایید.");

        }

        return RedirectToAction("Login", "Account");
    }

کد ویو

@using Football.Models

@using CaptchaMvc.HtmlHelpers
@{
    ViewBag.Title = "Log in";
    var captcha = Html.Captcha("تصویر جدید", "", 4, "عبارت در تصویر را وارد کنید", false);

    Layout = "_LoginLayout.cshtml";
}

@section styles {

    <link href="~/Content/css/mediaQueries.css" rel="stylesheet" />
}
<div style="height:620px">


    <div class="row login-page">
        <div class="col-lg-4 col-md-4 col-sm-5 col-xs-12 login-view login-form-view">
            <div class="login-main-form">
                <div class="login-LogoDiv">
                    <a href="/">
                       
                    </a>
                </div>
                <h3 class="loginTitle"><i class="fa fa-trophy" style="font-size:36px"></i>ورود به سایت<i class="fa fa-soccer-ball-o" style="font-size:36px"></i></h3>
                @if (TempData["LoginErrorMessage"] != null)
                {
                    <div class="Alert dangerAlert" id="dangerMessage">نام کاربری و یا رمزعبور اشتباه است.</div>
                }


                <form class="form-horizontal" method="post" action="/Account/Login" 
                      enctype="multipart/form-data" >
                    @Html.AntiForgeryToken()
                    @Html.ValidationSummary()
                   

                    <div class="input-group custom-login-input animated fadeIn">
                        <input type="text" class="form-control loginInputs" name="username" placeholder="شناسه کاربری خود را وارد کنید..." />
                        <span class="input-group-addon loginInputsAddon">
                            <label for="email">
                                <i class="fa fa-user"></i>
                            </label>
                        </span>
                    </div>
                    <div class="input-group custom-login-input animated fadeIn">
                        <input type="password" class="form-control loginInputs" name="password" placeholder="رمز خود را وارد کنید..." />
                        <span class="input-group-addon loginInputsAddon" style="padding: 6px 16px">
                            <label for="password">
                                <i class="fa fa-unlock-alt"></i>
                            </label>
                        </span>
                    </div>


                  
                    <div class="row">
                       
                            <div class="col-md-4 margin-top-20">
                                تصویر امنیتی
                            </div>


                            <div class="col-md-12" style="margin:0px">

                               @captcha
                           
                               
                                @Html.ValidationMessage(captcha.BuildInfo.InputElementId, new { @class = "text-danger" })
                            </div>
                    </div>
                    @*</div>*@

                    <div class="row login-form-details dis-flex al-center">
                        <div class="col-md-8 col-sm-12">
                            <button  type="submit" class="col-xs-12 fadeInUp animated loginBtn">ورود</button>
                        </div>
                    </div>
                </form>
                <div class="col-md-8 col-xs-12">
                    <a href="#" class="forgotPass">رمزعبورتان را فراموش کرده اید؟</a>
                </div>


              

                </div>
            </div>
        </div>

        <div class="col-lg-8 col-md-8 col-sm-7 login-page-background">
           
            <img src="../Content/Images/b2.jpg" class="backgroundImage" />
        </div>
    </div>

@*</div>*@



@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

ممنون میشم کمک کنید به نظر مشکل از captchaهست چون رفرش میشه و اجازه لاگین نمیده .این پروژه رو سیستم خودم بدون مشکل داره کار میکنه .پابلیش کردم گذاشتم رو سرو اینطور شده

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 12 مرداد 1397
  • 11:10

برای پروژه اتون باید یه Machin Key قرار بدید 

سرچ کنید Generate Machin Key سایت های آنلاین هستند که ایجاد میکنند و بعد در وب کانفیگ سایت روی سرور قرار دهید مشکل برطرف میشه

کاربر سایت

منال مجموعه

عضویت از 1393/10/21

  • جمعه 12 مرداد 1397
  • 12:26
سلام.من دیروز ماشین کی از یه سایت جنریت کردم گذاشتم وب کانفیگ مشکل لاگینم حل نشد.به نظر میاد مشکل از captcha باشه همین کد روی سیستم لوکالم بدون مشکل لاگین می‌کنه اما رو سرور فقط صفحه رفرش میشه و کد captchaعوض میشه.کدها و حتی یوزر و پسورد لاگین سایت رو فرستادم.نمی دونم چرا اینطور
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 12 مرداد 1397
  • 21:41

مشکل ار ForgeryToken است که به سایت شما مربوط میشه

احتمال زیاد از همون Machin Key هست 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)