从Web服务创建Asp用户(身份2+?)

时间:2015-10-07 12:41:51

标签: c# asp.net web-services asp.net-identity

我希望通过WCF Web服务为我的MVC Web应用程序创建用户。 在以前的身份版本中,我为成员和用户表创建了一个有效的记录。

现在只有存储用户配置文件的aspnetUsers表。 我试过在这个表中创建一个新记录,但没有成功。 记录已创建,但我无法使用该帐户登录。 如何哈希密码?我在哪里放盐?表中似乎没有指定用于定义盐的字段。

这是我正在尝试使用的查询:

INSERT INTO AspNetUsers(Id, Email, EmailConfirmed, PassWordhash, SecurityStamp,PhoneNumber,PhoneNumberConfirmed, TwoFactorEnabled,LockoutEnabled,AccessFailedCount,UserName) " + "
VALUES(@Id,
       @Email,
       @EmailConfirmed,
       @PassWordhash,
       @SecurityStamp,
       @PhoneNumber,
       @PhoneNumberConfirmed,
       @TwoFactorEnabled,
       @LockoutEnabled,
       @AccessFailedCount,
       @UserName) command.Parameters.Add(NEW SqlParameter("@Email", emailAddress));

 command.Parameters.Add(NEW SqlParameter("@EmailConfirmed", FALSE));

 //TODO hash + securitystamp?
 command.Parameters.Add(NEW SqlParameter("@PassWordhash", hashedPassword));

 command.Parameters.Add(NEW SqlParameter("@SecurityStamp", FALSE));

 command.Parameters.Add(NEW SqlParameter("@PhoneNumber", "093277604"));

 command.Parameters.Add(NEW SqlParameter("@PhoneNumberConfirmed", FALSE));

 command.Parameters.Add(NEW SqlParameter("@TwoFactorEnabled", FALSE));

 command.Parameters.Add(NEW SqlParameter("@LockoutEnabled", TRUE));

 command.Parameters.Add(NEW SqlParameter("@AccessFailedCount", "0"));  

目前直接通过数据库添加这个,因为我不知道其他任何方式?曾经有过这样的存储过程,但现在没有了。

我正在使用加密库来哈希我的密码,但这显然不起作用。

1 个答案:

答案 0 :(得分:0)

  1. 为什么要通过数据库查询直接创建它们?
  2. 您能否为此查询添加一些实际值?
  3. 这是密码哈希在身份ASP.NET Identity default Password Hasher, how does it work and is it secure?
  4. 中的工作方式

    编辑:
    这也是印章的生成方式:

     public ModelAndView getPcVolumeTopOffendersShortpaid(@Valid @ModelAttribute("reportForm") ReportForm reportForm, BindingResult result) {
        // Handle invalid request date cleanly ...
        // when invalid or doesn't exist, use the current date for selection
        // otherwise, selection is valid and can be used in criteria for query
        if (reportForm == null || result.hasErrors()) {
            reportForm = new ReportForm();
            reportForm.setMonthYear(DateFormatterUtil.getAbbreviatedMonthYearFromCurrentDateTime());
        }
    
        // Create the criteria for the specified, and retrieve the report
        reportForm.setReportType(ReportType.SHORTPAID_TOP_OFFENDERS_BY_VOLUME);
        TopOffendersReportCriteria topOffendersReportCriteria = reportService.getTopOffendersReportCriteria(reportForm);
        List<TopOffendersReport> list = reportService.getTopOffendersReport(topOffendersReportCriteria);
    
        // Return the reports view and the supporting page objects
        ModelAndView mv = new ModelAndView("reports/topOffendersShortpaidVolume");
        mv.addObject("reportList", list);
        mv.addObject("reportForm", reportForm);
        return mv;
    }