【发布时间】:2021-02-07 10:19:17
【问题描述】:
我的应用创建了一个Guid 事件令牌
客户像这样访问事件的 url。 https://example.com/event/a3b2e538-e87c-4444-a655-5171f263ac70
然后客户被重定向到登录表单以提供活动密码。
如果密码匹配事件令牌客户将能够看到该事件。 我可以在没有身份用户帐户的情况下完成此操作吗? (在这种情况下,我不希望遵循经典的用户身份登录方法)。
也许像创建一个 auth cookie 并在即将到来的请求中使用它。
[HttpPost]
[Route("validate/{code}")]
public IActionResult Cookie(string code)
{
var user = true; //Validate event token against event password supplied by user
if (user == true)
{
var ident = _userManager.CreateAuthCookie(user, DefaultAuthenticationTypes.ApplicationCookie);
HttpContext.GetOwinContext().Authentication.SignIn(new AuthenticationProperties { IsPersistent = false }, ident);
return Redirect("Wherever");
}
ModelState.AddModelError("", "Invalid login attempt");
return View();
}
【问题讨论】:
-
目标是创建一个身份验证令牌,对吧?可以通过验证 GUID 或身份用户帐户来实现。
-
@MiteshPrajapati 实际上不会有用户帐户。目标是使用用户提供的 url 令牌和密码创建一个 auth cookie(如果该组合匹配)
-
您可以创建 JWT 令牌,而不是设置 GUID,您可以将所有信息放入其中。在登录而不是针对数据库进行验证时,您可以针对 JWT 令牌进行验证,如果所有内容都得到验证,则创建实际的身份验证令牌。
-
我当然希望您不要在
code...中以纯文本形式发送密码...
标签: c# asp.net-mvc asp.net-core