小编Mar*_*ark的帖子

使用asp.net中的web api通过http进行身份验证

我已经观看并查看了许多关于保护asp.net web api的页面 - 包括:http://weblogs.asp.net/jgalloway/archive/2012/03/23/asp-net-web-api-screencast-series -part-6-authorization.aspxhttp://weblogs.asp.net/jgalloway/archive/2012/05/04/asp-net-mvc-authentication-customizing-authentication-and-authorization-the-right-way .aspx - 但是,我还没有看过KISS类型的例子.

如果我有一个web api,它返回一个汽车列表例如 - 我正在与第三方(即不是我自己的网站或服务器/域)合作,他们想要查询(获取)和插入(发布)列表汽车的类型,进入我的数据库,我如何验证它们(通过https)?

他们只是添加(在他们的JSON GET/Post中)类似于:

[
{"username":"someusername","password":"somepassword",
{
"carTypeID":12345,
"carTypeID":9876}
"carTypeID":2468}
}
}
]
Run Code Online (Sandbox Code Playgroud)

然后,我可以获取用户名和密码,并检查.net中的会员数据库,"IfUserAuthenticated"继续处理其余的JSON?

或者有更好的方法吗?我听说过向标题添加细节等等 - 但是我不确定这是不是因为某种原因,或者使其复杂化.我也听说过设置令牌被发送回第三方 - 如果这是最好的方法,我给他们的指示是建立他们将使用我的API的应用程序的一面?

感谢您的任何建议/指示,

标记

asp.net asp.net-mvc asp.net-web-api

5
推荐指数
1
解决办法
5593
查看次数

确保登录用户只能查看其数据的最佳方法

这听起来像是一个愚蠢的问题,但我只是想知道我是否在任何地方错过了一个技巧.

场景是,我有一个使用Simple Memebership的Web应用程序,用户可以注册使用它(例如发票程序).

但是,他们应该只能查看/更新/删除他们自己添加到数据库/ Web应用程序的信息.

确保用户只能访问其信息的最佳方法是什么?

是为每个表添加一个用户名字段,例如:

public class Invoice
{
     public int InvoiceId { get; set; }
     public int CustId { get; set; }
     public string UserName { get; set; }
}

public class Item
{
   public int ItemId { get; set; }
   public int InvoiceId { get; set; }
   public string UserName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

...然后在访问数据的任何控制器中,只需在每个查询中添加用户名检查,例如:

var Inv = db.Invoices.Where(x => x.UserName = User.Identity.Name);
var Itm = db.Items.Where(y => y.UserName = User.Identity.Name);
Run Code Online (Sandbox Code Playgroud)

这就是我目前正在使用的,但想知道这是否是最佳做法?或者,如果有一种更简单的方法,我们现在进入MVC4?

最好是从 …

asp.net security asp.net-mvc asp.net-mvc-3

5
推荐指数
1
解决办法
905
查看次数

Twitter.Bootstrap.MVC4 Nuget包中的导航路由控制器问题

使用Twitter.Bootstrap.MVC4可以将"null"传递给ExampleLayoursRoute.config中的Customer控制器:

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.MapNavigationRoute<HomeController>("Home Page", c => c.Index());

        routes.MapNavigationRoute<CustomerController>("Customer", null)  <-- pass null here
              .AddChildRoute<CustomerController>("List", c => c.Index())
              .AddChildRoute<CustomerController>("Add", c => c.Create())
            ;
    }
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:对象引用未设置为NavigationRouteconfigureationExtensions.cs文件中的对象实例:

  public static NamedRoute ToDefaultAction<T>(this NamedRoute route, Expression<Func<T, ActionResult>> action,string areaName) where T : IController
    {
        var body = action.Body as MethodCallExpression; <--- Error here
Run Code Online (Sandbox Code Playgroud)

您无法添加指向同一控制器/操作的链接:

        routes.MapNavigationRoute<CustomerController>("Customer", c => c.Index())
              .AddChildRoute<CustomerController>("List", c => c.Index())
Run Code Online (Sandbox Code Playgroud)

或者您收到错误:{"名为'Navigation-Customer-Index'的路径已经在路径集合中.路径名称必须是唯一的.\ r \nParameter name:name"}

到目前为止,我唯一的解决方法是在控制器中添加第二个重复的Action,并将其命名为Index2(例如):

public ActionResult Index()
    {
        return View(db.Customers.Where(x => x.UserName == User.Identity.Name).ToList());
    } …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-3 twitter-bootstrap

5
推荐指数
2
解决办法
2104
查看次数

在ASP.Net MVC中使用AutoMapper的正确方法

我正在尝试开始使用ViewModels - 但是我遇到了这个POST无法验证的问题 - 模型中的值显示在代码下方的Watch部分中:

ModelStats.IsValid = false

无效的ModelState

我的ItemViewModel是:

  public class ItemViewModel
  {
    public int ItemId { get; set; }
    [Display(Name = "Item")]
    public string ItemName { get; set; }
    [Display(Name = "Description")]
    public string Description { get; set; }
    [Display(Name = "Price")]
    public double UnitPrice { get; set; }
    [Range(0.00, 100, ErrorMessage = "VAT must be a % between 0 and 100")]
    public decimal VAT { get; set; }
    [Required]
    public string UserName { get; set; }
   }
Run Code Online (Sandbox Code Playgroud)

我相信这会很简单 …

c# asp.net-mvc automapper asp.net-mvc-3

5
推荐指数
1
解决办法
4万
查看次数

ASP.Net MVC JQuery在IE8中未定义,但在Chrome中没问题

我有一个在Chrome中完美运行的Web应用程序,但在IE8中,我的脚本文件出现了未定义的错误: SS1 脚本都以正确的顺序加载(View - > Source): SS2 我不知道从哪里开始诊断 - 任何想法?(我认为IE8相当现代).

谢谢,

标记

asp.net asp.net-mvc jquery asp.net-mvc-3 twitter-bootstrap

5
推荐指数
1
解决办法
547
查看次数

ASP.Net C#MVC EditorFor模板没有从主剃刀视图调用

我正在尝试为重复的类(Offer)设置EditorTemplate - 但是,我无法让EditorTemplate显示.就好像它在EditorTemplates文件夹中找不到它一样:

我的ViewModel是:

    public class CreateViewModel
    {
    public IList<OfferVM> Offers { get; set; }
    public OfferVM Header
    {
        get
        {
            return Offers.FirstOrDefault();
        }
    }
}

public class OfferVM
{
    public int RoomTypeId { get; set; }
    public int PropertyId { get; set; }
    public string RoomTypeName { get; set; }
    public string Layout { get; set; }
    public decimal RoomRate { get; set; }
    public string Inclusions { get; set; }
    public string Property { get; set; }
    public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc razor asp.net-mvc-3

5
推荐指数
1
解决办法
6201
查看次数

在ASP.Net MVC中将JSON转换为C#类

我正在尝试编写一个API - 其网站上显示的预期输出(针对第三方)是下面的JSON:

{
"api_version" : 4 ,
"hotel_ids" : [97497],   
"hotels" :
    [
        {
            "hotel_id": 97497,
            "room_types":
                {
                    "Fenway Room":
                        {
                            "url": "someurlhere",
                            "price": 178.50, 
                            "room_code": "SINGLE"                               
                        }
                }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用在线工具:http://json2csharp.com/

它给了我以下课程:

public class FenwayRoom
{
public string url { get; set; }
public double price { get; set; }
public string room_code { get; set; }
}

public class RoomTypes
{
public FenwayRoom __invalid_name__Fenway Room { get; set; }
}

public class Hotel …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json asp.net-mvc-3

5
推荐指数
1
解决办法
2384
查看次数

无法将类型隐式转换为'System.Collections.Generic.List

我想用一个DateTime属性填充一个viewmodel,还有一个类别列表.

视图模型:

public class TourCategoryVM
{
    public DateTime Date { get; set; }
    public List<TourCategoryList> TourCategoryList { get; set; }
}

public class TourCategoryList
{
    public int TourCategoryId { get; set; }
    public string TourType { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

领域模型:

public class TourCategory
{
    public int TourCategoryId { get; set; }
    public string TourType { get; set; }
    public virtual ICollection<Tour> Tour { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想我可以用这段代码轻松填充它:

        var viewModel = new TourCategoryVM();
        viewModel.TourCategoryList = db.TourCategories();
Run Code Online (Sandbox Code Playgroud)

但是,我收到错误:

错误1无法将类型隐式转换
System.Data.Entity.DbSet<tb.Models.TourCategory> …

c# asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
6623
查看次数

MVC EF Code首先一对一关系错误

我想要一份展台清单(在贸易展览会上)和参展商名单.

展台名单与参展商名单分开 - 但是,一旦注册,我希望参展商能够预订展位.

当他们选择/预订展台时 - 我希望能够在我的视图中列出展台,并展示已预订展台的相关参展商.

同样,我想在另一个视图中列出参展商,以及他们预订的展位.

所以我正在尝试建立一对一的关系(使用EF CodeFirst).

但是,当试图为Stand或Exhibitor添加控制器时,我收到以下错误:

在此输入图像描述

我的模特是:

 public class Stand
{
    public int StandID { get; set; }
    public string Description { get; set; }
    public bool Booked { get; set; }
    public int ExhibitorID { get; set; }
    public virtual Exhibitor Exhibitor { get; set; }

}

 public class Exhibitor
{
    public int ExhibitorID { get; set; }
    public string Company { get; set; }
    public int StandID { get; set; }
    public virtual …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc entity-framework model asp.net-mvc-3

4
推荐指数
1
解决办法
5908
查看次数

ASP.Net MVC 使用特定布局页面返回同一视图

我有一个视图,其中使用的是特定的layout.cshtml 文件,而不是主要的共享布局页面:“_LayoutExCr”

这对于控制器的 Get 部分来说很好:

    //
    // GET: /Exhibitor/Create

    public ActionResult Create()
    {
        return View("Create","_LayoutExCr");
    }
Run Code Online (Sandbox Code Playgroud)

这工作正常 - 并显示带有特定 _LayoutExCr“主”页面的创建视图。

但是,在我的 Create 方法的 POST 中,如果输入了错误的访问代码,我想使用 _LayoutExCr“主”页面返回相同的视图 - 但 VS2012 Express 用红色下划线:

 return View(exhibitor, "_LayoutExCr");
Run Code Online (Sandbox Code Playgroud)

'System.Web.Mvc.Controller.View(string, string)' 的最佳重载方法匹配有一些无效参数

    //
    // POST: /Exhibitor/Create

    [HttpPost]
    public ActionResult Create(Exhibitor exhibitor)
    {
        if (ModelState.IsValid)
        {
            if (exhibitor.AccessCode == "myaccesscode")
            {
                db.Exhibitors.Add(exhibitor);
                db.SaveChanges();
                return RedirectToAction("Thankyou");
            }
            else
            {
                ModelState.AddModelError("", "The Access Code provided is incorrect.");
                return View(exhibitor, "_LayoutExCr");
            }

        }

        return View(exhibitor, "_LayoutExCr");
    }
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何使用相同的布局页面将模型返回到视图?

谢谢你, …

asp.net asp.net-mvc razor

4
推荐指数
1
解决办法
6926
查看次数