相关疑难解决方法(0)

如何在使用ASP.NET标识时更改表名?

我正在使用Visual Studio 2013的发布版本(RTM,而不是RC)(从MSDN 2013-10-18下载),因此使用AspNet.Identity的最新版本(RTM).当我创建一个新的Web项目时,我选择"个人用户帐户"进行身份验证.这将创建以下表:

  1. AspNetRoles
  2. AspNetUserClaims
  3. AspNetUserLogins
  4. AspNetUserRoles
  5. AspNetUsers

当我注册一个新用户(使用默认模板)时,会创建这些表(如上所列),并且AspNetUsers表中插入了一条记录,其中包含:

  1. ID
  2. 用户名
  3. PasswordHash
  4. SecurityStamp
  5. 鉴别

此外,通过向"ApplicationUser"类添加公共属性,我已成功向AspNetUsers表添加了其他字段,例如"FirstName","LastName","PhoneNumber"等.

这是我的问题.有没有办法更改上面表格的名称(首次创建时)或者它们是否总是以AspNet我上面列出的前缀命名?如果表名可以不同的名称,请解释如何.

- 更新 -

我实施了@Hao Kung的解决方案.它确实创建了一个新表(例如我称之为MyUsers),但它仍然创建了AspNetUsers表.目标是用"MyUsers"表替换"AspNetUsers"表.请参阅下面的代码和创建的表的数据库图像.

我实际上想AspNet用我自己的名字替换每个表...例如,MyRoles,MyUserClaims,MyUserLogins,MyUserRoles和MyUsers.

我如何实现这一目标,最终只有一组表格?

public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address1 { get; set; }
    public string Address2 { get; set; }
    public string City { get; set; }
    public string State { get; set; }
    public string PostalCode { …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-identity

206
推荐指数
5
解决办法
9万
查看次数

通过ASP.NET身份2中的UserManager.Update()更新用户

ASP.NET Identity 2在一个MVC 5项目中使用,我想Student通过使用UserManager.Update()方法更新数据.但是,当我从ApplicationUser类继承时,我需要在调用update方法之前映射StudentApplicationUser.另一方面,当使用我也用于创建新Student的方法时,由于并发性而导致错误,因为我创建了一个新实例而不是更新.由于我无聊使用解决问题AutoMapper,我需要一个稳定的解决方案来解决问题AutoMapper.能否请您澄清如何解决这个问题?我将StudentViewModel控制器中的Update方法传递给我,然后我需要将它映射到Student,然后将它们传递给UserManager.Update()方法ApplicationUser.另一方面,我想知道我是否应该在Controller阶段检索并发送密码,而不是为安全问题转到View?你能否告诉我这个问题(在用户更新期间我不更新密码,我必须在数据库中保留用户的密码).任何帮助,将不胜感激.

实体类:

public class ApplicationUser : IdentityUser<int, ApplicationUserLogin,
                                     ApplicationUserRole, ApplicationUserClaim>, IUser<int>
{
    public string Name { get; set; }
    public string Surname { get; set; } 
    //code omitted for brevity
}

public class Student: ApplicationUser
{     
    public int? Number { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Update([Bind(Exclude = null)] StudentViewModel …
Run Code Online (Sandbox Code Playgroud)

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

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

实现UserManager以使用自定义类和存储过程

我的应用程序的所有身份验证和授权过程都是使用存储过程完成的.我已经写了所有我需要的功能,例如一类GetUsers,Login,AddRole,AddMember等,也用于管理用户和角色和权限管理页面,通过使用这个类来完成.

我只需要添加authentication(我的意思是该authorize属性),用于登录和注销的cookie以及为每个登录存储一些服务器端数据.我想我需要为此实施Identity

在这种情况下,你能指导我实施吗?看来你需要做的最基本的事情就是实现一个create将实例传递IUserStore给构造函数的方法.但我不需要为用户或角色提供任何表,我该如何实现此方法?

这是当前的类,如果您需要查看使用存储过程的自定义身份验证类,请告诉我.

public class AppUserManager : UserManager<AppUser>
{
    public AppUserManager(IUserStore<AppUser> store) : base(store) { }
    public static AppUserManager Create(IdentityFactoryOptions<AppUserManager> options, IOwinContext context)
    {
        //AppUserManager manager = new AppUserManager();
        //return manager;
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

.net asp.net-mvc asp.net-identity asp.net-identity-2

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