Tag: 身份

entity framework – SaveChanges()不会获取生成的标识密钥

我在我的项目中使用entity framework,这是一场噩梦! 我有一个SQL DB,我有一个名为Form的表。 表单具有PK和身份的ID(它会自动增加)。 这次我这样做: Dim form as int32 Dim dbform As New Entities1 Dim form696 As New Form dbform.AddToForm696(form) dbform.SaveChanges() ID = form.ID 一周前,ID和form.ID在插入后生成了密钥,但现在只有0。 我不知道发生了什么事就停止了工作。 我不得不更改插入的名称,删除和更新几个表的存储过程,所以我不得不重新映射这一切。 也许我做错了什么,但我一次又一次地看着,一切似乎都好。 有没有人知道为什么?

获取Identity中的当前用户电子邮件

我使用IIdentity接口获取当前userid和username 。 所以实现以下方法: private static IIdentity GetIdentity() { if (HttpContext.Current != null && HttpContext.Current.User != null) { return HttpContext.Current.User.Identity; } return ClaimsPrincipal.Current != null ? ClaimsPrincipal.Current.Identity : null; } 并添加以下代码: _.For().Use(() => GetIdentity()); 在我的IoC Container [structuremap] 。 用法 this._identity.GetUserId(); this._identity.GetUserName(); this._identity.IsAuthenticated 现在我想实现GetEmailAdress方法,如何做到这一点? 例 this._identity.GetEmailAdress(); 当使用this._identity.GetUserName(); 不要获取用户名表格数据库 。

Thread.CurrentPrincipal已经过身份validation,但ClaimsPrincipal.Current不是

我在我的WebApi项目中使用基于声明的授权,并且有一种方法可以检查当前身份是否经过身份validation。 当我使用ClaimsPrincipal.Current ,当前的身份未经过身份validation,但是当我使用Thread.CurrentPrincipal它就是。 ClaimsPrincipal.Current.Identity.IsAuthenticated; //False Thread.CurrentPrincipal.Identity.IsAuthenticated; //True 这看起来很奇怪,特别是因为MSDN说 ClaimsPrincipal.Current只返回Thread.CurrentPrincipal: 备注 默认情况下,返回Thread.CurrentPrincipal。 您可以通过设置ClaimsPrincipalSelector属性来指定要调用的委托来确定当前主体,从而更改此行为。 有人可以解释一下为什么ClaimsPrincipal未经过身份validation,而理论上两者都包含相同的身份吗?

SCOPE_IDENTITY无法在asp.net中运行?

我试图通过逐个执行两个查询来插入记录并获取其新生成的id,但不知道为什么它给我以下错误。 Object cannot be cast from DBNull to other types 我的代码如下:(我不想使用sql存储过程) SqlParameter sqlParam; int lastInsertedVideoId = 0; using (SqlConnection Conn = new SqlConnection(ObjUtils._ConnString)) { Conn.Open(); using (SqlCommand sqlCmd = Conn.CreateCommand()) { string sqlInsertValues = “@Name,@Slug”; string sqlColumnNames = “[Name],[Slug]”; string sqlQuery = “INSERT INTO videos(” + sqlColumnNames + “) VALUES(” + sqlInsertValues + “);”; sqlCmd.CommandText […]

全名而不是User.Identity.Name中的域ID

User.Identity.Name属性返回域登录ID。 哪个类/属性公开了实际的用户名? 对于登录提供my_domain \ jdoe的Web应用程序的用户“John Doe” **User.Identity.Name -** Returns : *my_domain\jdoe* **System.Environment.UserName** Returns: *jdoe* 哪个类/属性返回? ……“John Doe”

使用IIS Express但HttpContext.Current.User.Identity.Name为空,但不是Visual Studio Development Server

当Visual Studio设置为“使用本地IIS Web服务器”时, HttpContext.Current.User.Identity.Name为空/空白,但在Visual Studio设置为“使用Visual Studio开发服务器”时可正常工作。 希望您可以通过执行以下操作在Visual Studio 2010或2012中复制此问题(我已尝试过两者): 创建一个新的“ASP.NET空Web应用程序”,选择“.NET Framework 4”并将其命名为“WindowsAuthTest2”。 用。替换Web.config的内容 接下来,在名为“Default.aspx”的项目中添加一个新的“Web窗体”。 用Default替换Default.aspx中的代码 并用Default替换Default.aspx.cs中的代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WindowsAuthTest2 { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label1.Text = “[” + HttpContext.Current.User.Identity.Name + “]”; } } } […]

entity framework中推荐的身份生成方法是什么?

我对StoreGeneratedPattern最高效的方式感兴趣。 在过去,我习惯让DB为我生成ID,但我想知道设置是否有任何优势 StoreGeneratedPattern = None 代替 StoreGeneratedPattern = Identity 我甚至不确定当我将它设置为Calculated时会发生什么。 有什么建议? 有没有与此相关的好文章,因为msdn不是很清楚。 我在架构中使用的GUID很少使用整数。

确定文件标识的算法(优化)

继这个问题: 用于确定文件身份的算法 回顾 :我正在寻找一种用于确定文件标识的廉价算法,该算法在绝大多数情况下都有效。 我继续并实现了一种算法,它为每个文件提供了“ 非常独特 ”的哈希值。 我的算法的工作方式是: 对于小于特定阈值的文件,我使用标识哈希的完整文件内容。 对于大于阈值的文件,我采用X大小的随机N个样本。 我将文件大小包含在散列数据中。 (意味着具有不同大小的所有文件导致不同的哈希) 问题: 我应该为N和X选择什么值(我应该选择多少随机样本的大小?)我选择了4个样本,每个8K,并且不能算法算法。 我发现增加样本量会迅速降低算法的速度(导致搜索非常昂贵) 数学一:我的文件需要多少才能让这个算法爆炸。 (2个具有相同长度的不同文件最终具有相同的哈希值) 优化一:有什么方法可以优化我的具体实现来提高吞吐量(我似乎能够在我的系统上每秒做大约100个文件)。 这个实现看起来是否合理? 你能想到任何真实世界的例子吗? (我的重点是媒体文件) 相关信息: 我实现的算法 谢谢你的帮助!

无法在SQL Server 2008中创建序列

我尝试使用以下查询在SQL Server 2008中创建序列, CREATE SEQUENCE serial START 100 我得到以下语法错误, Msg 102,Level 15,State 1,Line 1 ‘SEQUENCE’附近的语法不正确。 如何在SQL Server 2008中创建序列?

IDENTITY_INSERT问题设置为OFF? : – /

我正在尝试将订单详细信息插入到我的数据库中,它一直在说: 当IDENTITY_INSERT设置为OFF时,无法在表’Orders’中为identity列插入显式值。 我所要做的就是通过使用WebSecurity.CurrentUserId将用户UserId插入UserId列 – 为什么这不起作用? 我有: dbase.Execute(“INSERT INTO Orders (UserId, OrderId, Status) VALUES (@0, @1, @2)”, WebSecurity.CurrentUserId, Session[“OSFOID”], “Confirmed”);` 所以,正如你所看到的,它非常简单。 但是,为什么它不起作用? 我的表定义是: