トークンによる認証と電子メール用のSendGridでCorsを持つWebApiプロジェクトがあります。私は彼がアカウントを確認できるようにユーザーに電子メールを送信する方法を作成する必要があります、問題は、私は常にIDENTITYを使用して見つかりましたと私は働いていないことです。私はこれを見つけましたtutorialとこのoneと私は自分のコードに "適応"しようとしていましたが、そのほとんどすべてがIDENTITYであるため不可能です。アイデンティティなしでWebApiを使用してアカウント確認を追加する方法
これは私が持っているものです。..
スタートアップクラス:
public void ConfigureAuth(IAppBuilder app)
{
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
// Ativar o método para gerar o OAuth Token
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions()
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(300),
AllowInsecureHttp = true
});
}
そして、私のプロバイダ:
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext c)
{
try
{
using (var context = new CegonhaContext())
{
var passValue = context.Users.Where(x => x.Email == c.UserName)
.Select(x => x.PasswordHash).FirstOrDefault();
var exist = Hashing.ValidatePassword(c.Password, passValue);
if (exist)
{
Claim claim = new Claim(ClaimTypes.Name, c.UserName);
Claim[] claims = new Claim[] { claim };
ClaimsIdentity claimsIdentity = new ClaimsIdentity(
claims, OAuthDefaults.AuthenticationType);
c.Validated(claimsIdentity);
}
return Task.FromResult<object>(null);
}
}
catch (Exception)
{
return Task.FromResult<object>(null);
}
}
そして、私のモデル表:
public partial class Users
{
[Key]
public int id_users { get; set; }
[StringLength(40)]
public string Email { get; set; }
public byte PhoneConfirmation { get; set; }
public string PasswordHash { get; set; }
public int LoginAttempt { get; set; }
[StringLength(10)]
public string UserProvider { get; set; }
public DateTime? Datepost { get; set; }
public int? EmailConfirmd { get; set; }
//public string Timepost { get; set; }
public int? id_users_data { get; set; }
public virtual Users_data Users_data { get; set; }
}
しかし、私どのように実装するのか分かりません電子メールによる確認。
ありがとう、私はこのようなものを作成することができました。 –