2016-04-19 16 views
1

私はこれに続いてguide to write my own Katana authentication middlewareです。エラーCS0122 t保護レベルのため、 'AuthenticationOptions'にアクセスできません

今、私はAuthenticationOptionsを書いているときに問題が発生しました。 Microsoft.Owin.Security.AuthenticationOptionsに固有の私は、「保護レベルのためにアクセスできない」というメッセージが表示されます。このクラスは保護されているため、アクセスできないようにする必要があります。私はきれいにして再構築しようとしましたが、私はまだ同じエラーが発生します。私は何かを欠いているに違いない?

私のクラス:

using Microsoft.Owin; 
using Microsoft.Owin.Security; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Dummy 
{ 
    public class DummyAuthenticationOptions : AuthenticationOptions 
    { 
     public DummyAuthenticationOptions(string userName, string userId) 
      : base(Constants.DefaultAuthenticationType) 
     { 
      Description.Caption = Constants.DefaultAuthenticationType; 
      CallbackPath = new PathString("/signin-dummy"); 
      AuthenticationMode = AuthenticationMode.Passive; 
      UserName = userName; 
      UserId = userId; 
     } 

     public PathString CallbackPath { get; set; } 

     public string UserName { get; set; } 

     public string UserId { get; set; } 

     public string SignInAsAuthenticationType { get; set; } 

     public ISecureDataFormat<AuthenticationProperties> StateDataFormat { get; set; } 
    } 
} 

Microsoft.Owin.Security.AuthenticationOptions:

namespace Microsoft.Owin.Security 
{ 
    internal abstract class AuthenticationOptions 
    { 
     protected AuthenticationOptions(string authenticationType); 

     public AuthenticationMode AuthenticationMode { get; set; } 
     public string AuthenticationType { get; set; } 
     public AuthenticationDescription Description { get; set; } 
    } 
} 
+0

Inernalクラスは、それらがで宣言されているアセンブリからのみアクセスすることができます。あなたはMicrosoft.Owin.Security' 'の同じバージョンを使用していてください。記事の著者が使用しています?私はちょうどgithubからの著者の例のソースを開いて、すべてがうまく見えます。そして、 'AuthenticationOptions'クラスはそのバージョンのライブラリ(2.0.1+)でpublicです。 –

+0

私は最新の安定版(3.0.1)を使用しています。何か助けがあれば、パッケージをナゲットで手に入れています。 2.0.1にダウングレードしてコンパイルしました。私は問題は、クラスが内部であったことだと思いますが、それは2.0.1ではありませんが、私はなぜでしょうか?私を助けてくれてありがとう:) –

答えて

0

問題がAuthenticationOptionsクラスが内部に設定されたということでした。 Microsft.Owin.Securityパッケージを3.0.1から2.0.1にダウングレードしました。ここでクラスはpublicとマークされているので、問題なくコンパイルできました。ドミトリーRotayへ

おかげで

関連する問題