2016-07-20 21 views
1

私は、光る新しいASP.NetコアWeb API + Angular2プロジェクトで、古いVB.Net aspxプロジェクトで作成した認証Cookieを使用する必要があります。私はクッキーベースの承認と認証に非常に新しいです。私の会社の誰も、自分が知っていることを自分がしようとしているものに翻訳する方法を知っていません。研究と工夫のASP.Netコアサイトの古いVB.Netサイトからクッキーを認証するにはどうすればよいですか?

日はここまで私を得ている: 今私が必要な場所[承認]属性を設定し、通常の401エラーを返すのアクセスをブロックしますが、私のサイトが作成されたクッキーを認識していないようすることができますがそのロックのためのことわざのキーとしての彼のサイトで...

Startup.csで - 私は「設定()」法の外に何もしていないよ、私がすべきですか?

私はそれがない正確に何を知って、その古いサイトからのログインで作成された認証クッキーの名前に「のCookieName」を設定せずに「クッキー」にスキームを設定し、クッキー認証を使用するようにサイトを構成しています。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
      { 
       // Stuff eliminated for brevity 

       // Set up pipeline 
       app.UseDefaultFiles(); 
       app.UseStaticFiles(); 
       //app.UseIdentity(); (Don't think I need this??) 

      app.UseCookieAuthentication(new CookieAuthenticationOptions() 
      { 
       AuthenticationScheme = "Cookies", //(Dont actually know what this does. Should I create my own middlewares? I mean what is this magic string "Cookies"? It's just from tutorials/examples...) 
       LoginPath = new PathString("/base_site/login.aspx"), 
       AccessDeniedPath = new PathString("/base_site/logon.aspx"), // Might want to create an error page... 
       CookieName = "companyName_AccessLevel", //This is what he had in <forms name="companyName_AccessLevel"> 
       ReturnUrlParameter = "index.html", //What youd put in <forms defaultUrl="index.html"> 
       AutomaticAuthenticate = true, 
       AutomaticChallenge = true 

      }); 

      app.UseMvc(); 
     } 

率直に言って、これはすべての私の同僚が彼のasp.netの経験に基づいて提案するものに比べてとても複雑なようだ:

彼は私に語った「ちょうどあなたのweb.configファイルでこれを置く」

<system.web> 
    <authentication mode="Forms"> 
     <forms name="companyName_AccessLevel" loginUrl="/base_site/login.aspx" protection="All" timeout="60" defaultUrl="index.html"/> 
    </authentication> 
    <authorization> 
     <deny users="?"/> 
    </authorization> 
    </system.web> 

はもちろんので、彼は私と一緒にこの「他の方法」の研究についてあまりにも熱狂ではありません。何とかweb.configに戻すことはできますか?

答えて

0

アプリケーション間でフォーム認証を設定するには、 共有フォーム認証に参加しているすべてのアプリケーションに対して同じ値に フォームの属性とWeb.configファイル ののmachineKeyセクションを設定します。

https://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx

1

クッキーが暗号化されている、あなたは、2つの異なるサイト間でCookieを読み取るために同様の暗号化技術および共有キーを使用する必要があります。コアサイトとクッキーを共有するために古いasp.net 4.xサイトを設定できるようにするNugetパッケージがあります。これはそのための公式文書です。

https://docs.asp.net/en/latest/security/data-protection/compatibility/cookie-sharing.html?highlight=share%20cookie#sharing-authentication-cookies-between-asp-net-4-x-and-asp-net-core-applications

関連する問題