微软将 ASP.NET Identity 框架更新到 1.0.0-rc1 版本后,我找不到任何文档或指导如何使用它。github 上有 2 个示例项目(一、二),但它们不包括高级内容,如令牌、密码重置、角色等。
问问题
1100 次
3 回答
1
我已将一个名为 WebCustomUser 的项目添加到https://github.com/onybo/Asp.Net-Identity-RC1-sample-app/tree/master/WebApplication。
该项目演示了以下方法的使用:
- RequireTokenConfirmationForSignInAsync
- ConfirmSignInTokenAsync
实现用户帐户的令牌激活。
更新:该项目现在包括一个自定义实体框架模型,其中包含添加了电子邮件地址的自定义用户(仅作为示例)。
包含显示 ASP.NET 标识中的一些新类的两个图表的建模项目现在位于单独的解决方案中,以便可以在专业 SKU 中打开主解决方案。
这是修改后的注册操作和激活操作。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
// Create a profile, password, and link the local login before signing in the user
User user = new User(model.UserName);
var result = await new UserManager(IdentityManager).CreateLocalUserAsync(user, model.Password);
if (result.Success)
{
var token = Guid.NewGuid();
var tokenResult = await AuthenticationManager.RequireTokenConfirmationForSignInAsync(token.ToString(), user.Id, DateTime.Now.AddDays(2));
if (tokenResult.Success)
{
return RedirectToAction("Registered", "Account", new { userId = user.Id.ToString(), token = token.ToString() });
}
else
AddModelError(tokenResult, "RequireTokenConfirmation failed");
}
else
{
AddModelError(result, "Failed to register user name: " + model.UserName);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
[AllowAnonymous]
public async Task<ActionResult> Activate(string userId, string token)
{
var tokenResult = await AuthenticationManager.ConfirmSignInTokenAsync(token);
return RedirectToAction("Login", new {returnUrl="/home"});
}
于 2013-09-04T20:18:24.593 回答
1
我相信唯一真正的文档是这个论坛上的回复。自测试版以来,几个实体的结构也发生了变化。
我还可以处理一些更深入的信息,尤其是
- 链接到您自己的自定义用户表
- 可以从控制器的 User 属性访问此自定义表
- 无论实际登录方法如何(本地、gmail、twitter 等),都可以从授权属性访问用户和角色
于 2013-09-03T12:27:52.417 回答
0
您可以在此处找到每晚构建身份库的示例。
于 2013-09-03T22:04:31.517 回答