0

メソッド SignIn が呼び出されると、エラー NullReferenceExepction が発生します。

これが私のViewModelです:

public Masterpage1ViewModel() {
        UserIdentity user = new UserIdentity("Admin");
        var claimsIdentity = new ClaimsIdentity(user);

        Context.OwinContext.Authentication.SignIn(claimsIdentity);
  }

UserIdentity のクラスは次のとおりです。

public class UserIdentity : IIdentity
{
    public string AuthenticationType
    {
        get { return DefaultAuthenticationTypes.ApplicationCookie; }
    }

    public bool IsAuthenticated { get; set; }

    public string Name { get; private set; }

    public UserIdentity(string name)
    {
        Name = name;
    }
}

また、Startup.csに追加しました:

app.UseCookieAuthentication(new CookieAuthenticationOptions()
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            Provider = new CookieAuthenticationProvider()
            {
                OnApplyRedirect = e => DotvvmAuthenticationHelper.ApplyRedirectResponse(e.OwinContext, e.RedirectUri)
            }
        });
4

1 に答える 1

0

ClaimsIdentityが正しく初期化されていないようですUserIdentity。OWIN Cookie Security Middleware 内のどこかでクラッシュする可能性があります。

次のコードを使用して初期化します。

var identity = new ClaimsIdentity(new[]
{
    new Claim(ClaimTypes.Name, UserName),
    // add another claims (e.g. for each role)
},
CookieAuthenticationDefaults.AuthenticationType);
Context.OwinContext.Authentication.SignIn(identity);
于 2016-09-08T08:55:58.687 に答える