私は「Remember Me」機能を私のWeb Apiプロジェクトに実装しようとしています。ASP.NET Web APIクッキーを使用した「Remember Me」機能
私はしたいと思います:
- はときでユーザーログインミー機能を覚えています。常にログインしているユーザーを維持するために、彼らはウェブサイトを訪問する際、ユーザは必要はユーザ名とパスワードごとに単一の時間を入力しないよう
- は、クッキーを保存します。
- 最後のログイン時に保存されたのクッキーを読んでユーザーにサインインします。私が考えてい
もう一つの質問は...私は、ユーザーがが私を忘れないでくださいチェックボックスをチェックするとJavaScript
を使用してクッキーを生成しようとしています。これは可能ですか?
OR
私はAccountController
でRememberMe()
を実装する必要があります?
追加: ここに私のコードはApplicationOAuthProvider
です。
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
ApplicationUser user = await userManager.FindByNameAsync(context.UserName);
if (user == null) {...}
if (userManager.IsLockedOut(user.Id)) {...}
if (!(await userManager.CheckPasswordAsync(user, context.Password)))
{ ... }
if (!user.EmailConfirmed) {...}
ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager,
OAuthDefaults.AuthenticationType);
ClaimsIdentity cookiesIdentity = await user.GenerateUserIdentityAsync(userManager,
CookieAuthenticationDefaults.AuthenticationType);
AuthenticationProperties properties = CreateProperties(user.UserName);
AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, properties);
context.Validated(ticket);
context.Request.Context.Authentication.SignIn(cookiesIdentity);
JavaScriptでご覧ください。
$('#checkbox').click(function() {
if ($('#checkbox').is(':checked')) {
// save username and password
username = $('#txtLoginEmail').val();
password = $('#pass').val();
checkbox = $('#chkRememberMe').val();
} else {
username = '';
password = '';
checkbox = '';
}
});
あなたのリンクは間違っていると思います。 [This](http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/)は正しいものです – Pikoh