【发布时间】:2016-04-24 07:52:45
【问题描述】:
我使用 ASP.NET Identity 并且当用户想要注册时收到此错误:
值不能为空。\r\n参数名称:经理。
这是我的注册操作代码:
public virtual ActionResult Register(string nm, string em, string ps)
{
var redirectUrlPanel = new UrlHelper(Request.RequestContext).Action("Index", "HomeUsers", new { area = "Users" });
var redirectUrlAuction = new UrlHelper(Request.RequestContext).Action("Auction", "Default", new { area = "" });
if (ModelState.IsValid)
{
try
{
var user = new Q_Users();
user.UserName = nm;
user.Email = em;
user.SecurityStamp = Guid.NewGuid().ToString();
var adminresult = UserManager.Create(user, ps);
//Add User Admin to Role Admin
if (adminresult.Succeeded)
{
//Find Role Admin
var role = RoleManager.FindByName("Admin");
var result = UserManager.AddToRole(user.Id, role.Name);
if (result.Succeeded)
{
return Json(new { OK = "1", UrlPanel = redirectUrlPanel, UrlAuction = redirectUrlAuction });
}
}
else
{
return Json(new { OK = "0", UrlPanel = redirectUrlPanel, UrlAuction = redirectUrlAuction });
}
}
catch (Exception ex) { }
return Json(new { OK = "0", UrlPanel = redirectUrlPanel, UrlAuction = redirectUrlAuction });
}
else
{
return Json(new { OK = "0", UrlPanel = redirectUrlPanel, UrlAuction = redirectUrlAuction });
}
}
而这一行的错误:var adminresult = UserManager.Create(user, ps);
【问题讨论】:
-
No UserManager 不为空。是的,我没有对“前”做任何事情,但知道错误信息! SecurityStamp 可以吗?我不知道什么是参数名称管理器
-
内部异常为空
-
检查 'ex' 内部异常并调用堆栈...或添加另一个 catch(ArgumentNullException e) 并检查 StackTrace
-
第二次捕获的内部异常也是空的,StackTrace 是这样的: StackTrace = "在 Microsoft.AspNet.Identity.UserManagerExtensions.Create[TUser,TKey](UserManager`2 manager, TUser user, String password )\r\n 在 Diaxin.Controllers.DefaultController.Register(String nm, String us, String ps) in "Controller Path":line 213"
标签: asp.net-mvc asp.net-identity identity