Claimed Identifier を解析してプロバイダーを特定しようとしないでください。それは一般的なケースでは機能するかもしれませんが、それが失敗する有効なケースがあり、攻撃に対して自分自身を開いている可能性もあります.
のインスタンスから ClaimedIdentifier を取得しますIAuthenticationRequest
。このインターフェイスには、プロパティを持つインスタンスをProvider
返すプロパティもあります。この Uri プロパティは、特に関心のあるプロバイダーを認識する方法です。たとえば、次のようになります。IProviderEndpoint
Uri
public void Login(string userSuppliedIdentiifer, OpenIdRelyingParty rp) {
IAuthenticationRequest request = rp.CreateRequest(userSuppliedIdentifier;
if (request != null) {
if (request.Provider.Uri == new Uri("https://www.google.com/o8/ud")) {
// It's Google!
} else if (request.Provider.Uri == new Uri("https://me.yahoo.com/whatever-it-is")) {
// It's Yahoo!
}
request.RedirectToProvider();
}
}
これが役立つことを願っています。