私は2つのWebアプリケーションプロジェクトを持っていて、どちらもTFSソース管理に含まれています。最初のプロジェクトでは、AntiForgeryトークンで問題は発生しません。偽装トークンの問題は解決されましたが、プロジェクトに影響がありました。
これは、「System.InvalidOperationException」種類の例外がSystem.Web.WebPages.dllで発生したエラー
であったが、ユーザーコードで処理されなかった
追加情報:タイプのクレーム 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier 'または' http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider 'が提示されたClaimsIdentityに存在しませんでした。クレームベースの認証で偽造防止トークンを有効にするには、設定されたクレームプロバイダが、生成したクレームアイデンティティインスタンスにこれらのクレームを両方提供していることを確認してください。設定されたクレームプロバイダが代わりにユニークな識別子として別のクレームタイプを使用する場合は、静的プロパティAntiForgeryConfig.UniqueClaimTypeIdentifierを設定することで設定できます。
、見つかったソリューションは、そのエラーを投げままプロジェクトのGlobal.asax.csファイルに
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimsIdentity.DefaultNameClaimType;
それを追加することでしたので、私はやったし、それが問題を修正しました。
しかし、これは奇妙な部分が入る場所です...私が "固定"アプリケーションを実行すると、私は他のWebアプリケーションからユーザーとしてログインしています。
私は他のアプリケーションを実行することに決めました。私はまだログインしていたので、ログアウトしてデバッグを停止しました。その後、 "固定"プロジェクトに入って、
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimsIdentity.DefaultNameClaimType;
となり、プロジェクトは正しく実行されました。
他のアプリケーションからログアウトしないと、このエラーがスローされます。
私はこれがどういうことなのか、これがどうして起こっているのか、全く考えていません。
@DavidG、はい。そして、今私は今でもプロジェクトを公開することができません – Chris
@DavidG、どこでそれをやっていくのですか? Btw、説明のおかげで – Chris
@DavidG、ありがとう。私はいくつかの検索をして、それは単純だった: CookieName = "WhateverICallIt"; Startup.Auth.csの – Chris