Безопасно ли использовать сессию для учетных записей пользователей? - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу отличить учетные записи пользователей от профиля зарегистрированного пользователя. У меня есть одно мнение для каждого из них. И два контроллера, один из них для учетной записи зарегистрированного пользователя, другой для других пользователей. Я использовал переменные сессии для этого. Работает без проблем. Но мне интересно, безопасно ли использовать сессию или у вас есть предложения?

  public ActionResult MainAccount(int? id)
    {
        if (Session["ActiveUser"]!=null)
        {
    List<User> selecteduser = _context.Users.Where(p => p.ID == id).ToList();


        // add Prod = _context.Product.Where(p=>p.User.ID == us.ID).ToList()
        var vm = new HMViewM()
        {
            homesec1 = _context.homesec1slider.ToList(),
            userr = selecteduser,
            Prod = _context.Products.Where(p => p.User.ID == id).ToList(),
            Photopr=_context.PhotoProducts.Where(ph=>ph.Product.id==ph.ImageId).ToList(),

        };

        return View(vm);
        }
        return RedirectToAction("Register","Account");
    }

    public ActionResult MyAccount(int?id)
    { 
       List< User> us = Session["ActiveUser"] as List< User>;
        var vm = new HMViewM()
        {
            homesec1 = _context.homesec1slider.ToList(),
            userr = us,
            Prod = _context.Products.Where(p => p.User.ID == id).ToList(),
            Photopr = _context.PhotoProducts.Where(ph => ph.Product.id == ph.ImageId).ToList(),

        }; ;
        return RedirectToAction("MainAccount");
    }

Вид:

@using HandMShop.Models
@model HandMShop.ViewModel.HMViewM
@{
    ViewBag.Title = "MainAccount";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@foreach (User userprof in Model.userr.ToList())
{
    <section id="team" class="pb-5">
    <div class="container">
  <div class="row">
   <div class="wrapp">
<!-- Team member -->
    <div class="col-xs-12 col-sm-6 col-md-12 ">
   <div class="image-flip" ontouchstart="this.classList.toggle('hover');">
     <div class="mainflip">
      <div class="frontside">
         <div class="card">
        <div class="card-body text-center">
  @if (@userprof.Gender == "female")
 {<p><img class=" img-fluid" src="~/PublicFront/images/Busywoman.png" alt="card image"></p>   }
 else {
  <p> <img src="~/PublicFront/images/executive-businessman-cartoon_18591-40407.jpg" /></p>
}
 <h4 class="card-title">@userprof.FirstName @userprof.LastName</h4>
 <p class="card-text">@userprof.AboutUser</p>
 <a href="#" class="btn btn-primary btn-sm"><i class="fa fa-plus"></i></a>
</div>
</div>
</div>
<div class="backside">
<div class="card">
<div class="card-body text-center mt-4">
<h4 class="card-title">@userprof.FirstName @userprof.LastName , @userprof.Age</h4>
<p class="card-text">@userprof.AboutUser</p>
<ul class="list-inline list-block">
<li class="  ">
<a class="social-icon text-xs-center" target="_blank" href="#">
<i class="fas fa-phone-volume"></i> @userprof.PhoneNumber</a></li>
<li class="  ">
<a class="social-icon text-xs-center" target="_blank" href="#">
<i class="far fa-envelope"></i> @userprof.Email
</a></li>
<li class="  ">
<a class="social-icon text-xs-center" target="_blank" href="#">
<i class="fab fa-instagram"></i>@userprof.instagram
</a></li>
<li class="  ">
<a class="social-icon text-xs-center" target="_blank" href="#">
<i class="fas fa-map-marker-alt"></i>@userprof.CountryName,@userprof.CityName
</a>
</li>
@if (Session["ActiveUser"] != null)
{
User us = Session["ActiveUser"] as User;
if (us.ID == userprof.ID){
<li class="  ">
<a class="social-icon text-xs-center" target="_blank" href="#">
<i class="fas fa-map-marker-alt"></i>Edit
</a></li>
}}

</ul></div></div></div></div></div></div>
<!-- ./Team member -->
</div> </div>  </div>
</section>

<!--container.//-->
<section class="page-section" id="relatedprod">
    <div class="container">
        <div class="row middle">

            <div class="col-lg-12 text-center">
                <h2 class="section-heading ">Muellifin isleri</h2>
            </div>
            @foreach (Product prd in Model.Prod.Where(i=>i.userid==userprof.ID).ToList())
            {
                    <div class="col-md-4">
                        <figure class="card card-product mehsul">
                            @if (prd.PhotoProducts.FirstOrDefault() != null)
                            {
                                <div class="img-wrap">
                                    <img class="img-fluid mehsulimg" src="@prd.PhotoProducts.First().ImageName" alt="">
                                </div>
                            }
                            else
                            {
                                <div class="img-wrap">
                                    <img class="img-fluid mehsulimg" alt="No Photo Available">
                                </div>
                            }

                            <div class="handhover">

                                <img class="img-fluid" src="~/PublicFront/images/serv2b712.jpg" alt="">
                            </div>
                            <figcaption class="info-wrap">
                                <h4 id="" class="title DottedName">@prd.ProdName </h4>

                            </figcaption>
                            <div class="bottom-wrap">
                                <a href="/Shop/Product/@prd.id" class="btn btn-sm btn-primary float-right">Order Now</a>
                                <div class="price-wrap h5">
                                    <span class="price-new">@prd.Price AZN</span> <del class="price-old">$1980</del>
                                </div> <!-- price-wrap.// -->
                            </div> <!-- bottom-wrap.// -->
                        </figure>
                    </div> <!-- col // -->
                


            }

        </div>
    </div>
</section>
}

Модель:

    public class HMViewM
{
    public List<User> userr { get; set; }

    public List<homesec1slider> homesec1 { get; set; }

    public  List<Category>  catg { get;set; }
    public List<Colour> colrs { get; set; }
  public List<PhotoProduct> Photopr { get; set; }
    public List<Product> Prod { get; set; }

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