不解析聲明的標識符來揣摩提供商。雖然這可能適用於常見的情況,但有些情況下會失敗,並且您也可能打開自己進行攻擊。
您獲得從IAuthenticationRequest
實例的ClaimedIdentifier。該接口也有一個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();
}
}
我希望這有助於。
什麼是「供應商類型」?這不是OpenID規範定義的術語。 –
我要去的是,會給我一個「運營商名稱」給予ClaimedIdentifier'string'(即谷歌,雅虎等)的方法。 – culturalanomoly