CredentialsAuthProvider を次のようにオーバーライドしました。
public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
{
//TODO: Auth the user and return if valid login
return true;
}
public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IOAuthTokens tokens, Dictionary<string, string> authInfo)
{
base.OnAuthenticated(authService, session, tokens, authInfo);
//User has been authenticated
//Find the user's role form the DB
if (roleA)
//GOTO mypage1
if (roleB)
//GOTO mypage2
}
~/auth/Credentials への簡単な投稿を実行し、認証が機能し、OnAuthenticated メソッドが呼び出されている間に、ロールなどに基づいてユーザーを適切なページに実際にリダイレクトするにはどうすればよいですか?
OnAuthenticated メソッドで次のことを行うのにうんざりしましたが、望ましい効果はありませんでした。
authService.("/ビュー/顧客");
スターター テンプレートを使用して更新します (以下のコメントを参照)。
public class CustomCredentialsAuthProvider : CredentialsAuthProvider
{
public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
{
return true;
}
public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IOAuthTokens tokens, Dictionary<string, string> authInfo)
{
session.ReferrerUrl = "http://www.msn.com";
base.OnAuthenticated(authService, session, tokens, authInfo);
}
}
そして、投稿するフォーム:
<form method="POST" action="/auth/credentials">
<input name="UserName"/>
<input name="Password" type="password"/>
<input type="submit"/>
</form>