小编use*_*444的帖子

如何为Asp.NET MVC 5创建一个ClaimsIdentity对象?

我在.NET MVC 5应用程序中工作.我不想使用Entity Framework.我想验证RavenDB数据库.在我看来,我想要替换UserManager帐户控制器附带的.我想我可以重写所有UserManager函数来使用我的数据库,除了我不理解该ClaimsIdentity对象.

在该SignInAsync方法中,有一个调用UserManager.CreateIdentityAsync(...).我知道它会返回一个ClaimsIdentity对象.我不知道的是如何自己创建一个ClaimsIdentity对象.

我看到它有4个属性Actor,BootstrapContext,ClaimsLabel.我不知道这些属性用于什么,我不知道如何正确生成它们.我认为正确生成它们非常重要,因为它是如何生成身份验证cookie的.

我在这里查看了ClaimsIdentity对象的解释,但这并没有真正帮助我理解.

如果我能看到代码CreateIdentityAsync(),那可能会有所帮助.

如果我发现这一切都错了,请告诉我.否则,如果有人可以指出我如何生成ClaimsIdentity对象,那将会有所帮助.

ClaimsIdentity identity = new ClaimsIdentity
{
    Actor = ????,
    BootstrapContext = ?????,
    Claims = ?????,
    Label = ?????
}
Run Code Online (Sandbox Code Playgroud)

authentication claims-based-identity ravendb katana asp.net-mvc-5

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

通过列表中的两个属性选择distinct

我有一个list<message>包含类型GuidDateTime(以及其他属性)的属性.我想摆脱所有在列表中的项目,其中的GuidDateTime是相同的(除了一个).有时候这两个属性会与列表中的其他项目相同,但其他属性会有所不同,所以我不能只使用.Distinct()

List<Message> messages = GetList();
//The list now contains many objects, it is ordered by the DateTime property

messages = from p in messages.Distinct(  what goes here? ); 
Run Code Online (Sandbox Code Playgroud)

这就是我现在所拥有的,但似乎应该有更好的方法

List<Message> messages = GetList();

for(int i = 0; i < messages.Count() - 1)  //use Messages.Count() -1 because the last one has nothing after it to compare to
{
    if(messages[i].id == messages[i+1}.id && messages[i].date == message[i+1].date)
    {
        messages.RemoveAt(i+1);
    {
    else
    { …
Run Code Online (Sandbox Code Playgroud)

c# linq-to-objects list distinct

24
推荐指数
2
解决办法
3万
查看次数

.NET MVC 3提交按钮做了不同的事情

有人可以向我解释为什么这不起作用?我在一个页面上阅读了很多关于多个提交按钮的帖子,但我不明白后台发生了什么.我试图按照我看到其他人在这些帖子中所做的事情,但似乎都没有.我只想了解这里到底发生了什么.我怀疑这与发布页面时到底发生了什么有关.

两个按钮完全不同.第一个按钮发布表单.在表单的邮政编码中,然后将其重定向到Vehicle/Index.在第二个按钮不会发布形式,并直接进入/车/ CreateNewVehiclePart.

这就是我想要的.我希望两个按钮都能提交表单(因此我可以在继续之前执行验证并将更改保存到Vehicle).保存车辆数据后,我想根据单击的按钮移动到/ Vehicle/AddPartsToVehicle/ Vehicle/CreateNewVehiclePart.

<table class="layouttable">
    <tr>
        <td>
            @using (Html.BeginForm("AddPartsToVehicle", "Vehicle", FormMethod.Post, null))
            {
                <input type="submit" value="Add Parts To Vehicle" />
            }
        </td>
        <td>
            @using (Html.BeginForm("CreateNewVehiclePart", "Vehicle", FormMethod.Post, null))
            {
                <input type="submit" value="Create New Vehicle Part" />
            }
        </td>
    </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这是车型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Globalization;


namespace ShopLog.Models
{
    public class Vehicle
    {
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public …
Run Code Online (Sandbox Code Playgroud)

input submit multiple-forms asp.net-mvc-3

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

KendoUI网格过滤器无法正常工作

我刚开始使用Kendo UI.我有一个.NET MVC Razor项目,其中包括一个Kendo Grid.我的页面加载很好,看起来很好 - 数据在网格中,但我有两个问题:

  1. 当我点击"过滤器"图标时,没有任何反应(没有弹出,没有)

  2. 当我运行页面时,我在kendo.all.min.js文件中的visual studio中出现错误(Error: Microsoft JScript runtime error: Object doesn't suport this action. Code highlighted reads "d.transport=new n.data.transports[a.type](c(h,{data:i}))" 在firebug中运行会出现此错误:"n.data.transports[a.type] is not a constructor"

我使用的是List(CustomViewModel)类型的Model.我已将以下脚本和css添加到我的_Layout局部视图中:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/kendo.all.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

(我尝试使用"kendo.web.min"和"kendo.aspnetmvc.min"代替"kendo.all.min"并得到相同的结果,但错误在kendo.web.min.js)

我的页面看起来像这样:

@model List<CustomViewModel>
...
@(Html.Kendo().Grid(Model)
    .Name("applicantGrid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ApplicationID);
        columns.Bound(p => p.FirstName);
        columns.Bound(p => p.LastName);            
    })
.Sortable()
.Filterable()  
.Pageable()        
)
Run Code Online (Sandbox Code Playgroud)

我的视图模型如下所示:

public class CustomViewModel
{
    [ScaffoldColumn(false)]
    public Guid CustomViewModelID { get; set; …
Run Code Online (Sandbox Code Playgroud)

filtering asp.net-mvc-3 kendo-ui

2
推荐指数
1
解决办法
5474
查看次数

MVC3 jquery ajax参数数据在控制器处为空

我有一个控制器动作,我想通过jquery调用更新.该操作会运行,但参数中没有数据.

我在一个列中使用带有自定义命令的kedoui网格,我想运行一些服务器代码.

kendoui grid in view
...
columns.Command(command =>
{
    command.Custom("ToggleRole").Click("toggleRole");
});
...
Run Code Online (Sandbox Code Playgroud)

该模型的类型为List <_AdministrationUsers>.

public class _AdministrationUsers
{
    [Key]
    [ScaffoldColumn(false)]
    public Guid UserID { get; set; }

    public string UserName { get; set; }

    public string Role { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的toggleRole脚本:

<script type="text/javascript">
     function toggleRole(e) {
         e.preventDefault();
         var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
         alert(JSON.stringify(dataItem));

         $.ajax({
             type: "POST",
             url: '@Url.Action("ToggleRole", "Administration")',
             data: JSON.stringify(dataItem),
             success: function () {
                 RefreshGrid();
             },
             error: function () {
                 RefreshGrid()
             }
         });
     }
</script>
Run Code Online (Sandbox Code Playgroud)

这是我的控制器动作:

[HttpPost] …
Run Code Online (Sandbox Code Playgroud)

jquery asp.net-mvc-3 kendo-ui

2
推荐指数
1
解决办法
7820
查看次数

C#字典值引用类型 - 请解释为什么会发生这种情况

我不理解C#中以下linqpad查询的结果.评论应该解释我感到困惑的地方.

void Main()
{
    Dictionary<string, testClass> test = new Dictionary<string, testClass>();

    string key = "key";
    testClass val = null;

    test.Add(key, val);

    val = new testClass();

    test[key].Dump(); //returns null.   WHAT? I just set it!!!



    test[key] = val;
    val.Text = "something";
    //  returns val object, with Text set to "Something". 
    //  If the above didn't work, why does this work?
    test[key].Dump(); 



    val.Text = "Nothing";
    //  return val object, with Text set to "Nothing". 
    //  This, I expect, but, again, why didn't the …
Run Code Online (Sandbox Code Playgroud)

c# dictionary pass-by-reference

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