以前のバージョンのASP.NETでは、クレームベースの承認にユーザー名を一意に識別するために使用されたIDからAntiForgeryConfig.UniqueClaimTypeIdentifierという名前のプロパティを使用しました。ASP.NETコアのAntiForgeryConfig.UniqueClaimTypeIdentifier
これはASP.NETコアでどのように行われますか?
以前のバージョンのASP.NETでは、クレームベースの承認にユーザー名を一意に識別するために使用されたIDからAntiForgeryConfig.UniqueClaimTypeIdentifierという名前のプロパティを使用しました。ASP.NETコアのAntiForgeryConfig.UniqueClaimTypeIdentifier
これはASP.NETコアでどのように行われますか?
として近く、私はそうのよう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
を作成しましたあなたがこの質問をしてから数ヶ月が経ちましたが、あなたとその事実の後でこれに来る人のために、それが助けてくれることを願っています。
あなたの答えが偽造防止のトークンのサポートにどのように関係しているのか分かりませんか? –
私の謝罪。私はあなたが本当にただ一人のユーザーを確認する方法をしたいと思っていました。 – Grandizer