私のMVCプロジェクトで認証を実装しようとしています。問題は、ASP.NET ID OWINを実装したことです。私は正常に認証することができ、すべてが良いように見えます。IdentityUserからIIdentityへのASP.NET MVC認証キャスト
public MyCompanyIdentity Identity
{
get { return System.Threading.Thread.CurrentPrincipal.Identity as MyCompanyIdentity ; }
}
:
問題は、次のように値がカスタムクラスにキャストされ、このサービス層ではSystem.Threading.Thread.CurrentPrincipal.Identity
経由で認証されたユーザを取得し(例えば、サービスレイヤなど)他のプロジェクトがあるということです下記のように
MyCompanyIdentityクラスの内容は次のとおりです。私はfolloとして認証を設定し、私のコントローラクラスで
public class MyCompanyIdentity : IIdentity
{
public MyCompanyIdentity();
public string EndUserName { get; set; }
public string Exception { get; set; }
public string Ticket { get; set; }
public string Company { get; set; }
public string Fullname { get; set; }
public string Email { get; set; }
public bool IsAuthenticated { get; }
public string Name { get; }
public string AuthenticationType { get; }
}
W:
var userStore = new UserStore<DemoApplicationUser>(new PeopleSaaIdentityContext());
var userManager = new UserManager<DemoApplicationUser>(userStore);
var user = userManager.Find(username, password);
if (user != null)
{
var authManager = HttpContext.Current.GetOwinContext().Authentication;
ClaimsIdentity userIdentity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authManager.SignIn(new Microsoft.Owin.Security.AuthenticationProperties() { IsPersistent = true }, userIdentity);
//How do I cast/convert the System.Threading.Thread.CurrentPrincipal.Identity to a MyCompanyIdentity?
}
私は、ソースコードへのアクセス権を持っていないようIdentityUser
を実装するためにMyCompanyIdentity
を変更することはできませんので。
IIdenityUser
にキャスト/コンバートするにはどうすればよいですか?私は、アプリケーション内のどこにでも使用されているのと同じクラスを再利用したいと思います。
私は本当にそれが私に知らせて、私はさらに説明しようとする意味があることを願っています。