2016-12-16 22 views

答えて

-1

として近く、私はそうのようStartup.csクラスのConfigureServices方法でSignInManagerを設定することですあなたが探しているものを言うことができるように:

services.AddScoped<SignInManager<ApplicationUser>, AvantiaSignInManager<ApplicationUser>>(); 

をするとこのような独自のSignInManagerを実装することができます

:あなたは次のような CreateUserPrincipalAsyncメソッドを実装する必要があります
public class AvantiaSignInManager<TUser> : SignInManager<TUser> where TUser : class 

model.EmployeeID = UsersEmployeeID; 

public class BaseController : Controller { 

    internal ILogger logger; 

    public string UsersLoginName => User.Identity.Name; 
    public long UsersEmployeeID => User.HasClaim(x => x.Type == Constants.Claims.Employee.ID) ? Convert.ToInt64(User.FindFirst(Constants.Claims.Employee.ID).Value) : 0; 
    public long UsersTenantID => User.HasClaim(x => x.Type == Constants.Claims.Tenant.ID) ? Convert.ToInt64(User.FindFirst(Constants.Claims.Tenant.ID).Value) : 0; 
    public long UsersSubscriberID => User.HasClaim(x => x.Type == Constants.Claims.Subscriber.ID) ? Convert.ToInt64(User.FindFirst(Constants.Claims.Subscriber.ID).Value) : 0; 

} 

これは、私は、任意のxxxControllerからのようなものを行うには、私のBaseControllerから継承できるようになる:

は、私はその後のようなデフォルトControllerクラスをオーバーライドするBaseControllerを作成しましたあなたがこの質問をしてから数ヶ月が経ちましたが、あなたとその事実の後でこれに来る人のために、それが助けてくれることを願っています。

+0

あなたの答えが偽造防止のトークンのサポートにどのように関係しているのか分かりませんか? –

+0

私の謝罪。私はあなたが本当にただ一人のユーザーを確認する方法をしたいと思っていました。 – Grandizer