2016-05-17 3 views
3

Visual StudioでデフォルトのMVC 6テンプレートを使用しています。ユーザーがクラスで認証されているかどうかを確認する必要があります。これは非常にシンプルなはずですが、なぜ動作しないのか分かりません。 ありがとうございます。 ASP.NETコア1バージョンについてはasp.netコアでUser.Identity.IsAuthenticated相当のものがあります。

using Microsoft.AspNet.Http; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Security.Claims; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 
using System.Security.Principal; 

namespace fake.Classes 
{ 
    public class fakeUser 
    { 
     public static string getBrand() 
     { 
      if (User.Identity.IsAuthenticated) 
      { 
       return getThemeName(); 
      } 
     } 
    } 
} 
+0

asp.net-アイデンティティのバージョン:その後、

SignInManager<ApplicationUser> signInManager _signInManager = signInManager; 

、あなたが認証を確認するためにsigninmanagerを使用することができますか? RC1? RC2?早い? – tmg

+0

"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final"、ありがとう – user973671

+0

'context.User.Identities.Any(i => i.AsAuthenticated)'を試す –

答えて

3

、あなたはプライベートsignInManagerフィールドにそれを追加し、consutructor経由でコントローラにSignInManagerを注入する必要があります。

private SignInManager<ApplicationUser> _signInManager; 

コンストラクタ:

_signInManager.IsSignedIn(User) 
+0

Windows認証を使用している場合、例外が発生するUnauthorizedAccessException:不正な操作を実行しようとしました。 System.Security.Principal.WindowsIdentity.get_AuthenticationType()これを呼び出すとき。いずれの方法でも安全な方法に関する考えはありますか?私のアプリはどちらにでも展開できます。 – Yablargo