小编jos*_*ndo的帖子

带有自定义表的Identity 2.0

我是ASP.NET身份的新手,我仍然试图了解它是如何工作的.不幸的是,我发现我尝试过的许多教程都是针对Identity 1.0的,而我正在尝试使用Identity 2.0.

我面临的最大问题是我认为很简单,但事实证明并非如此.我要做的是使用现有数据库和现有用户表.目前我所能做的就是让Identity创建自己的表来存储用户数据.我不想使用Entity Framework,但是我很难将Entity Framework与Identity 2.0分开.

虽然我的情况是我正在使用SQL Server,但我想我会尝试在这个链接上实现MySQL的自定义提供程序:http://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql -aspnet-identity-storage-providerhttps://github.com/raquelsa/AspNet.Identity.MySQL.这似乎只在身份1下工作.似乎有一个较新的,但使用实体框架.我也试过https://github.com/ILMServices/RavenDB.AspNet.Identity.

有了我尝试过的所有东西,我会遇到以下问题:

var manager = new IdentityUserManager(new UserStore<IdentityUser>(context.Get<ApplicationDbContext>()));
Run Code Online (Sandbox Code Playgroud)

我面临的问题是我需要根据RavenDB的说明删除ApplicaitonDbContext类,但是我不知道该放入什么内容.

我得到的错误是:

非泛型类型'AspNet.Identity.MySQL.UserStore'不能与类型参数一起使用

找不到类型或命名空间名称'ApplicationDbContext'(您是否缺少using指令或程序集引用?)

第二个错误是预期的,但是我不确定在这行代码中使用什么.有没有人在没有使用Entity Framework的情况下实现自定义提供程序的经验?

谢谢.

更新1:

我已经尝试了以下教程[ http://aspnetguru.com/customize-authentication-to-your-own-set-of-tables-in-asp-net-mvc-5/ ],但它似乎不完整,完全遵循教程时出现编译或运行时错误.我还有一些问题......

将"ApplicationUser"的所有实例替换为"User"时,IdentityConfig.cs中的以下行出现问题

var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<MyDbContext>()));
Run Code Online (Sandbox Code Playgroud)

将ApplicationUser更改为User会产生以下错误

"WebApplicationTest2.Models.User"类型不能在泛型类型或方法"Microsoft.AspNet.Identity.EntityFramework.UserStore"中用作类型参数"TUser".没有从"WebApplicationTest2.Models.User"到"M​​icrosoft.AspNet.Identity.EntityFramework.IdentityUser"的隐式引用转换.

我也很难弄清楚如何使用用户管理器和许多ASync方法.以下行不起作用:

AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, await user.GenerateUserIdentityAsync(UserManager));
Run Code Online (Sandbox Code Playgroud)

在AccountController.cs中,出现以下错误:

"Microsoft.Owin.Security.IAuthenticationManager.SignIn(Microsoft.Owin.Security.AuthenticationProperties,params System.Security.Claims.ClaimsIdentity [])'的最佳重载方法匹配具有一些无效参数.

'WebApplicationTest2.Models.User'不包含'GenerateUserIdentityAsync'的定义,并且没有可以找到接受类型'WebApplicationTest2.Models.User'的第一个参数的扩展方法'GenerateUserIdentityAsync'(您是否缺少using指令或程序集引用?)

c# asp.net asp.net-mvc-5 asp.net-identity-2

29
推荐指数
1
解决办法
3万
查看次数

使用变量或参数指定ALTER SEQUENCE的重启值

我有一种情况需要将序列重新启动到指定值,其中此值在变量中指定或作为参数从C#程序以编程方式传递.

以下代码是我希望的工作示例,但没有:

DECLARE @current_value AS BigInt = 60000;

ALTER SEQUENCE
    usq_MySequence
RESTART WITH
    @current_value
Run Code Online (Sandbox Code Playgroud)

像这样的东西确实有效:

ALTER SEQUENCE
    usq_MySequence
RESTART WITH
    60000
Run Code Online (Sandbox Code Playgroud)

然而,这是硬编码,我正在与之交互的程序只会传递参数(在.NET中使用SqlCommand)

无论如何重置具有变量或参数的序列?

c# sql-server

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