読み取りはできるが Cookie を送信できないクライアントを使用しています。クライアントは認証されたメソッドに投稿するため、これは問題です。簡単な回避策は、Cookie 情報をヘッダーで送信し、BeginRequest でインターセプトして、作成した Cookie をリクエストに添付することだと考えました。認証の前にbeginリクエストが発生するので、うまくいくと思いました。それはしませんでした。
これが私の現在の方法です。
protected void Application_BeginRequest()
{
// I have added the auth cookie to the header
var a = Request.Headers["Authorization"];
if (a == null) return;
// get cookie value
var s = a.Replace(".AspNet.ApplicationCookie=", "");
// I am injecting the cookie into the request
var c = new HttpCookie(".AspNet.ApplicationCookie", s);
Request.Cookies.Add(c);
}
「実際の」Cookie を観察するためにブレークポイントを設定しましたが、それは「作成された」Cookie と一致します。私は何か間違ったことをしていますか、それとも不可能なことをしようとしていますか? さらに、Cookie 情報を使用してユーザーを承認する方法を誰かが知っていれば、私は大満足です。
これは、現在標準の Owins ライブラリを使用する MVC5 アプリケーションです。